并发得专门开个分类 x
到时候把这篇删掉 x
零碎
所有实例域、静态域和数组元素都储存在堆内存中,堆内存在线程之前共享。
JMM 定义了:线程之间的共享变量储存在主内存中,每个线程都有一个私有的本地内存,本地内存储存了该线程已读写共享变量的副本。
- 线程 A 把本地内存 A 中的共享变量副本刷新到主内存中。
- 线程 B 去读取主内存中线程 A 刷新过的共享变量。
- 从整体来看,这两个步骤实质上是线程A向线程B发送消息,而通信必须经过主内存。JMM 通过控制主内存与每个线程的本地内存之间的交互,来提供内存可见性的保证。