002 并发的基本概念

Posted trekxu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了002 并发的基本概念相关的知识,希望对你有一定的参考价值。

一 . 概述

 并发:

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

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

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

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


 二 .指令重写

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

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

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


 三 java的努力

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

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

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

 技术分享图片

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

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

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

解决的方式就是同步.

 

 

 

 

 

 

   

以上是关于002 并发的基本概念的主要内容,如果未能解决你的问题,请参考以下文章

C++11多线程第一篇:并发基本概念及实现,进程线程基本概念

并发_002 锁的概念

1-3 并发与高并发基本概念.mkv

java并发的基本概念和级别

Java基础加强之并发基本概念介绍

LR11-性能测试基本概念-策略