JMM模型和cpu线程模型的对八大原子操作的作用冯诺依曼计算机模型

Posted 涵山Malcolm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JMM模型和cpu线程模型的对八大原子操作的作用冯诺依曼计算机模型相关的知识,希望对你有一定的参考价值。

计算机:


image.png


JMM:
image.png


一、上面两张图分别为 计算机的线程模型和JMM线程模型
你会发现:
一个CPU相当于 – JMM的一个线程
一个三级缓存 + 寄存器 相当于 – JMM的工作内存
一个RAM相当于 – JMM的主内存(即内存条)

**二、八大原子操作: **口诀(瑞喽呦额赛 store write单独记,lock unlock我不相信记不住)

假设 我想运行 a + 1

lock : 把变量a标记为某个线程独占
read : 从内存条中读取数据(a =3)到总线中
load : 从总线把数据加载到缓存中
use : 从缓存加载到计算机的寄存器中
assign : 把寄存器中的a=3数据加载到计算机的运算单元,并运算(3+1 = 4),把算出的结果4赋值到缓存
store : 从缓存读取结果(4)传递到总线上
write : 从总线上把结果(4)写回内存条中
unlock : 把变量a解锁

三、再给大家扩展点内容
冯诺依曼计算机模型(通用):控制器、运算器、存储器、输入和输出 由这些部分组成的。
cpu速度(1000MHZ以上)>内存条(800MHZ) 所以要有L1、L2、L3缓存做缓冲
所以速度:cpu>寄存器>L1>L2>L3>RAM 缓存作为cpu和内存之间的缓冲

以上是关于JMM模型和cpu线程模型的对八大原子操作的作用冯诺依曼计算机模型的主要内容,如果未能解决你的问题,请参考以下文章

Juc11_Java内存模型之JMM八大原子操作三大特性读写过程happens-before

Java内存模型之原子性问题

关于JAVA中的JMM内存模型

关于JAVA中的JMM内存模型

关Java的内存模型(JMM)

Java内存模型(JMM)总结与学习