什么是 Java 内存模型(JMM)?
Java 内存模型(Java Memory Model,简称 JMM)是一种抽象的概念,并不真实存在,它描述的一组规则或者规范。通过这些规则、规范定义了程序中各个变量的访问方式。
Java 内存模型抽象了主内存和工作内存的概念,规定所有的变量都存储在主内存中,主内存中的变量是所有线程都可以共享的,但所有线程都无法直接接触到主内存,只能够直接接触到工作内存。对主内存中的变量进行操作时,必须首先将主内存的变量复制到工作内存,进行操作后,再将变量刷回到主内存中。因此,所有线程只有通过主内存来进行通信,主内存和工作内存之间的通信由 Java 内存模型控制。