刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
现在的计算机中一般都是有多个CPU,同时CPU会有多个核心,java在执行多线程的时,这些线程会在核心里面并行运行。在计算机的硬件内存模型中,绝大多数的数据会存储在计算机的主存中,CPU上会有一组寄存器,部分堆和栈中的数据会存储在CPU的寄存器中,CPU操作寄存器的速度要远远的高于操作主存,在CPU寄存器和主存之间还存在一层CPU Cache,CPU 的缓存分为一级缓存,二级缓存,CPU操作缓存的速度要稍微慢于寄存器,主存要比寄存器和缓存大很多。
Java内存模型与硬件内存架构之间存在差异。硬件内存架构没有区分线程栈和堆。对于硬件,所有的线程栈和堆都分布在主内存中。部分线程栈和堆可能有时候会出现在CPU缓存中和CPU内部的寄存器中。如下图所示:

从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:
本文链接:JMM和硬件内存架构
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!
