总结
JMM和JVM的关联
1、JAVA内存模型(JMM)
===============
1.1、操作系统内存模型解决的问题
=================
在现代计算机硬件体系中,CPU的数据处理速度远比从内存条读写数据的速度要快,为了更好地利用CPU的运算能力,每个CPU都配备了寄存器和CPU缓存来提高IO吞吐,降低CPU等待数据的耗时。
既然是高速缓存,其高成本就导致存储空间必然有限,也就不会将全量数据都装载,因此只会将CPU当下计算所需的数据副本拷贝到高速缓存中。虽然提高了CPU读写数据的IO吞吐,也带来的数据不一致问题。
对于数据不一致问题,不同的操作系统有不同的系统级指令的解决方案,来约束线程的数据在何时从主内存读取,何时写入主内存。
1.2、JAVA内存模型解决的问题
市面上的操作系统百花齐放,而Java作为一个跨平台的语言,势必要为用户屏蔽底层细节。因此在操作系统内存模型的基础上,对共性抽象提出了Java 内存模型。
Java内存模型