Java内存模型(解决可见性和有序性问题)
一.简介
JMM是一个规范,感兴趣可以查看JSR113标准,描述了JVM平台上多线程程序的语义,具体包括一个线程对共享变量的写入何时能被其他线程“看到”。
二.内存模型
当指令在CPU上运行的时候,会先将运算需要的数据从内存中复制一份到CPU的高速缓存当中,那么CPU进行计算时就可以直接从它的高速缓存读取数据和向其中写入数据,当运算结束之后,再将高速缓存中的数据刷新到主存当中。(现代CPU其实是有多级缓存的,但是为了简单起见就没介绍了,因为我觉得这里不介绍CPU多级缓存不会影响对JMM的理解)。