共享模型之内存
多线程的三大特性 (原子性、可见性、有序性)
- 之前讲的
synchronized底层Monitor主要关注的是访问共享变量时,保证临界区代码的原子性。下面进一步深入学习共享变量在多线程间的【可见性】问题与多条指令执行时的【有序性】问题
重点)
- JMM 即
Java Memory Model,它从Java层面定义了主存、工作内存抽象概念,底层对应着CPU 寄存器、缓存、硬件内存、CPU 指令优化等。JMM 体现在以下几个方面原子性- 保证指令不会受 线程上下文切换的影响可见性- 保证指令不会受 cpu 缓存的影响(JIT对热点代码的缓存优化)有序性- 保证指令不会受 cpu 指令并行优化的影响
重点)
