Java内存模型
Java内存模型是Java Memory Model的缩写,又简称为JMM,是一个抽象的概念。Java内存模型的存在主要是用来屏蔽不同硬件平台访问内存的差异。使它们让Java程序在不同的平台下访问内存达到一致的效果。在JVM内部,我们姑且分为堆和栈两部分。当线程创建的时候,JVM会为其创建一个工作内存来存储线程的私有数据,线程对变量的操作都会先从主内存拷贝一份到自己的工作内存当中,进行一系列的运算,然后再将运算结果更新到主内存当中,不能直接对主内存进行操作。线程间的通信(Thread-A和Thread-B), 必须通过主内存完成,它们之间是无法直接访问对方的工作内存。内存模型与系统内存架构关系如下:
通过上图,我们对Java内存模型的工作流程有了一个大致的了解。学过JVM原理的同学可能对Java内存模型跟JVM运行时的数据区搞混,在
