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 条评论
 下一页
  
   
   
   
   
  
  
  
  
  
  
  
  
 