JMM内存模型-volatile工作原理
2022-03-19 23:42:57 0 举报
JMM内存模型-volatile工作原理
作者其他创作
大纲/内容
num = 0
1. read
4. 副本 num = 0
8.write
num=2
4. load
6. assign
12. use
线程一
缓存一致性协议(MESI)
6. 副本 num = 2
副本 num = 2
num=0
10. use时,发现失效,重新加载
11. load
volatile 缓存可见性,有序性原理:底层实现主要通过汇编lock指令。1. 会将当前处理器缓存行的数据立即写回系统内存2. 根据MESI协议,写回系统内存的操作会导致其它CPU里缓存的该内存地址数据失效3. 提供内存屏障功能,使lock前后的指令不允许重排,保证有序性
执行引擎
5. use
7. store
副本 num = 0
9. 失效
工作内存
CPU总线嗅探机制
因为volatile修饰,会立即将该修改写回主内存
num = 2
3. read
副本 num = 2
线程二
private volatile int num = 0;Thread 1:num = 1; (停,等thread2 赋值)Thread 2:num = 2;
2. load
主内存
0 条评论
回复 删除
下一页