002 并发的基本概念
Posted trekxu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了002 并发的基本概念相关的知识,希望对你有一定的参考价值。
一 . 概述
并发:
在单核处理器之中,我们的线程是在CPU之中不断地切换完成任务,这是单核处理器之中的并发.
在多核处理器之中,我们的线程是运行的不同的CPU核之中,也就是说,我们的程序是在并行进行的.
介绍上面的概念的目的就是说,我们的并发需要从硬件的基础之上来说明,因为JVM完成了指令的重写和优化,我们如果不知道有优化和重写的概念,
根本就不知道并发之中可能会出现问题的地方.
二 .指令重写
CPU为了自己的快速运行,会对代码的运行顺序进行调整,也就是说程序的运行并非是按照顺序执行的.
在单核时代,CPU需要保证最终的结果是一致性的.
但是在多核下,CPU也无法保证这种结果的一致性.因此在并发的情况下,结果出错的风险会变得更大.
三 java的努力
java为了保证一致性,在虚拟机的层面上提供了一致性的结果,做出了JVM的规范.
在这种规范之下,屏蔽了特有系统和硬件的特性问题,按照一致性的处理方式来处理并发.
虽然效率不如使用特有命令效率高,但是能保证结果的正确性有保证.
java之中的线程是独立运行的一个实体,所需要的数据共享变量是从主内存中拷贝出来的一个副本.
当在多线程环境下,每个线程都会有自己的变量副本.
但是各个线程并不知道其它线程也在操作这个变量副本----------可见性问题.
解决的方式就是同步.
以上是关于002 并发的基本概念的主要内容,如果未能解决你的问题,请参考以下文章