Java并发之内存模型(JMM)浅析
背景 学习Java并发编程,JMM是绕不过的槛。在Java规范里面指出了JMM是一个比较开拓性的尝试,是一种试图定义一个一致的、跨平台的内存模型。JMM的最初目的,就是为了能够支多线程程序设计的,每个线程可以是和其他线程在不同的CPU核心上运行,或者对于多处理器的机器而言,该模型需要实现的就是使得每一个线程就像运行在不同的机器、不同的CPU或者本身就不同的线程上一样,这种情况实际上在项目开发中是常见的。简单来说,就是为了屏蔽系统和硬件的差异,让一套代码在不同平台下能到达相同的访问结果。(当然你要是想做高性能运算,这个还是要和硬件直接打交道的,博主之前搞高性能计算,用的一般都是C/C++,更老的语言还有Fortran,不过现在并行计算也是有很多计算框架和协议的,如MPI协议、基于CPU计算的OpenMp,GPU计算的Cuda、OpenAcc等)当然了,JMM在设计之初也是有不少缺陷的,不过后续也逐渐完善起来,还有一个算不上缺陷的缺陷,就是有点难懂。 什么是JMM JMM即为JAVA 内存模型(java memory model)。Java内存模型的主要目标是定义程序中各个变量的访问规则,...