码迷,mamicode.com
首页 > 其他好文 > 详细

002 并发的基本概念

时间:2018-04-30 14:36:12      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:调整   性问题   一个   解决   运行   屏蔽   内存   图片   http   

一 . 概述

 并发:

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

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

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

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


 二 .指令重写

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

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

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


 三 java的努力

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

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

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

 技术分享图片

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

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

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

解决的方式就是同步.

 

 

 

 

 

 

   

002 并发的基本概念

标签:调整   性问题   一个   解决   运行   屏蔽   内存   图片   http   

原文地址:https://www.cnblogs.com/trekxu/p/8973527.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!