Java虚拟机规范试图定义一种Java内存模型(JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台上都能达到一致的内存访问效果。
Java内存模型规定了所有的变量都存储在主内存中,每条线程都还有自己的工作内存,线程的工作内存中保存了被该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读取主内存中的变量。不同的线程之间也无法直接访问对方工作内存的变量,线程间变量值的传递需要通过主内存来完成
Java内存模型规定了所有的变量都存储在主内存中,每条线程都还有自己的工作内存,线程的工作内存中保存了被该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读取主内存中的变量。不同的线程之间也无法直接访问对方工作内存的变量,线程间变量值的传递需要通过主内存来完成