处理并发物理机的方案对于JVM内存模型的实现有很大的参考作用,毕竟JVM也是做硬件层的事情,底层架构决定了。上层架构建模方法。
计算机会议不仅涉及多个处理器参与计算,还涉及一系列硬件问题,其中最直接的就是内存需求。相互作用。然而,计算机存储设备与分配给处理器预算的速度相差很大,根本无法满足处理器的处理速度。
缓存从内存中复制用于方便处理器快速工作的数据,然后将计算出的数据与主存同步,处理器执行不需要等待。
缓存虽然解决了处理器和内存之间的冲突,但是却给计算机带来了另一个问题:缓存一致性。特别是当多个处理器共享相同的主存空间时,各自的缓存数据可能会不一致。
为了解决这个问题,处理器和内存之间的读写必须遵循一定的协议:MSI、MESI、MOSI、Synapse、Firefly和Dragon协议,ETC。这就是上图中处理器、缓存和内存的映射方式。
处理器除了缓存之外,还方便执行乱序输入指令,以充分利用处理器。代码中,只要输出一致,输入的数据可以乱序重新排列,所以程序中算术的顺序与输入代码的顺序不匹配。
JVM内存模型
上面我们了解了。硬件内存模型以此为参考,我们来看看jvm内存模型。
jvm定义的一组Java内存模型,用于实现跨平台一致的内存访问效果。消除了不同硬件和操作系统的内存访问的防御差异。这与C和C++不同,C++直接使用操作系统的物理硬件和内存模型来处理,所以在每个平台上都会有差异。
Java的内存模型规定所有变量都存储在主存中。Java核心规定每个线程都有自己的工作内存,并且工作内存存储线程使用的变量在主内存中进行内存复制所有操作、读取变量都必须在工作内存中完成。