002 并发的基本概念

一 . 概述

 并发:

  在单核处理器之中,我们的线程是在CPU之中不断地切换完成任务,这是单核处理器之中的并发.

  在多核处理器之中,我们的线程是运行的不同的CPU核之中,也就是说,我们的程序是在并行进行的.

    介绍上面的概念的目的就是说,我们的并发需要从硬件的基础之上来说明,因为JVM完成了指令的重写和优化,我们如果不知道有优化和重写的概念,

      根本就不知道并发之中可能会出现问题的地方.


 二 .指令重写

  CPU为了自己的快速运行,会对代码的运行顺序进行调整,也就是说程序的运行并非是按照顺序执行的.

    在单核时代,CPU需要保证最终的结果是一致性的.

    但是在多核下,CPU也无法保证这种结果的一致性.因此在并发的情况下,结果出错的风险会变得更大.


 三 java的努力

  java为了保证一致性,在虚拟机的层面上提供了一致性的结果,做出了JVM的规范.

  在这种规范之下,屏蔽了特有系统和硬件的特性问题,按照一致性的处理方式来处理并发.  

    虽然效率不如使用特有命令效率高,但是能保证结果的正确性有保证.

 

java之中的线程是独立运行的一个实体,所需要的数据共享变量是从主内存中拷贝出来的一个副本.

当在多线程环境下,每个线程都会有自己的变量副本.

  但是各个线程并不知道其它线程也在操作这个变量副本----------可见性问题.

解决的方式就是同步.

 

 

   

猜你喜欢

转载自www.cnblogs.com/trekxu/p/8973527.html
002