JMM内存模型和cpu硬件内存模型
2023-05-15 16:27:46 0 举报
JMM内存模型和cpu硬件内存模型
作者其他创作
大纲/内容
共享变量
use
cpu
寄存器
L1
线程A
load
write
保证内存可见性:1.内存屏障stroreLoad,汇编的lock前缀指令。可以让线程里面的缓存失效,这样线程的就会从主内存里面重新读取2.线程上下文切换。 因为线程上线文切换的时候,上下文变量是存储在寄存器里面,当有执行写操作的时候(比如赋值),这时候就从主内存里面重新加载。
L2
assin
read
主内存
L3
cpu硬件内存模型
高速缓存
JMM内存模型,抽象的概念
可见性保证:1.缓存行一致性(64bt大小):内存屏障storeLoad,有lock前缀指令:可以禁止指令重排序。MESI协议:M:修改,内存修改变量的时候,其它线程获取的缓存行的变量都要变成失效状态iE:独占S:共享I:失效2.硬件总线锁定:单线程cpu操作时候直接锁定主内存3.单线程 可以保证指令重排序,保证线程可见。多线程需要通过内存屏障,或者线程上线文切换才能保持可见性。 内存屏障:写读屏障
0 条评论
下一页
为你推荐
查看更多