本文主要介绍了模型产生问题的背景、解决的问题、处理思路以及相关的实现规则,这些都是密切相关的,希望读者看完后能够对Java内存模型体系有一个相对清晰的认识阅读本文,了解它是什么以及为什么它是这样。
物理学,理解这个问题就可以解释内存模型的背景。
物理机面临的并发问题与虚拟机中的情况有很多相似之处。物理机解决方案对于虚拟机实现具有很大的参考意义。
物理机并发问题
硬件效率问题
计算机处理器不可能仅仅依靠处理器的“计算”来处理大部分正在进行的任务。可以解决的话,处理器至少需要和内存进行交互,比如读取运算数据并保存这个运算的结果是很难消除的(不可能只通过寄存器来完成所有的计算任务)。
由于计算机存储设备的计算速度与处理器之间存在几个数量级的差距,为了避免处理器等待慢速内存完成读写操作,现代计算机系统增加了层尽可能提高读写速度。接近处理器运行速度的缓存。
缓存作为内存和处理器之间的缓冲区:将某个操作所需的数据复制到缓存中,以便操作可以快速运行,当操作完成时,从缓存同步回内存。
缓存一致性问题
基于缓存的存储系统的交互可以解决处理器和内存速度之间的冲突,但也给计算机系统带来了更高的复杂性,因为一个新的问题介绍一下:缓存一致性。
在多处理器系统(或单处理器多核系统)中,每个处理器(每个核心)都有自己的缓存,并且它们共享相同的主内存(MainMemory)。
当多处理器计算任务涉及同一主存区域时,各自的缓存数据可能会不一致。
为此,每个处理器在访问缓存时都需要遵循某种协议,并且在读写时按照协议进行操作,以保持缓存的一致性。
上一篇:内存条型号查询命令
下一篇:java内存模型详细图解