JMM即Java Memory Model,它定义了主存、工作内存抽象概念,底层对应着CPU寄存器、缓存、硬件内存、CPU指令优化等。

    JMM体现在以下几个方面:

    • 原子性-保证指令不会受到线程上下文切换的影响(synchronized)
    • 可见性-保证指令不会受CPU缓存的影响
    • 有序性-保证指令不会受CPU指令并行优化的影响