JMM
JMM:JavaMemoryModel,即 Java 内存模型,用于屏蔽各种硬件和操作系统的内存访问差异。
注:
JMM 和 JVM内存结构不是一个层次的划分:
- JVM 内存结构是伴随JVM的启动而对内存区域进行的划分是真实存在的
- JMM 只是一个抽象的概念,和多线程相关的,描述了一组规则或规范,这些规则或规范围绕如何处理并发过程中的原子性、可见性和有序性来建立的。
主内存、工作内存、内存交互
内存模型结构
- 所有的变量都存储在主内存中,每个线程都有自己的工作内存,而工作内存则存储在 CPU 的高速缓存或寄存器中(比在内存中读写快)。
- 每个线程只能直接操作自己工作内存中的变量(由主内存拷贝而来的或局部变量),不同线程之间的变量值的传递需要通过主内存。
内存间的交互
8个操作:
- read:把一个变量值从主内存传到工作内存中