1. 什么是Java内存模型?(JMM)

  • 因为处理器和内存不是同数量级,所以需要在中间建立中间层,也就是高速缓存,这会引出缓存一致性问题。在多处理器系统中,每个处理器都有自己的高速缓存,而它们又共享同一主内存,有可能操作同一位置引起各自缓存不一致,所以需要约定协议来保证一致性。Java 内存模型(Java Memory Model,JMM) 屏蔽掉了各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到一致性的内存访问效果。

12.1 Java内存模型,主内存和工作内存

2. 主内存和工作内存

  • Java 内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。它规定了所有的变量都存储在主内存中,每条线程有自己的工作内存,工作内存保存了被该线程使用到的变量的主内存副本,线程对变量的读取、赋值等操作都必须在工作内存中进行,而不能直接读写主内存中的变量,不同线程也无法直接访问对方工作内存中的变量。线程间变量值的传递需要通过主内存来完成。

12.1 Java内存模型,主内存和工作内存

相关文章: