java内存模型

2021-08-21  本文已影响0人  nieniemin

一、现代计算机物理内存模型

Java内存模型规定了JVM如何基于计算机内存工作。JVM就是一个完整的计算机模型因此这个模型中包含一个内存模型

现代计算机的内存与处理器的运算能力之间有几个数量级的差距,所以现代计算机系统加入读写速度尽可能接近处理器运算速度的高速缓存(L1、L2、L3三级缓存容量依此增大,速度依此降低)来作为内存与处理器之间的缓冲:将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存之中这样处理器就无需等待缓慢的内存读写了。

基于高速缓存的存储交互很好地解决了处理器与内存的速度差异矛盾,但同是引入了一个新的问题:缓存一致性。在多处理器系统中,每个处理器都有自己的高速缓存,而他们又共享同一主存,如下图所示:多个处理器运算任务都涉及同一块主存,需要一种协议可以保障数据的一致性,这类协议有MSI、MESI、MOSI及Dragon Protocol等。总而言之,缓存一致性解决了缓存中的数据同步到主内存中数据一致性。

JMM物理内存模型

1.并发编程需要解决的关键问题

2.java解决并发编程的方法

Java的并发采用的是共享内存模型。

3.JMM内存交互

Java内存模型定义了以下八种操作来完成,如下图所示:

JMM内存交互操作

JMM对8种内存交互操作制定的规则:

4. 线程/工作内存/主内存 三者的关系

参考文章:

[(翻译)JVM——Java物理内存模型(JMM)及运行时内存模型]https://blog.csdn.net/cheya3213/article/details/100595911

https://blog.csdn.net/scyatcs/article/details/77532966

https://www.cnblogs.com/czwbig/p/11127124.html

上一篇 下一篇

猜你喜欢

热点阅读