Java内存模型

2019-01-31  本文已影响0人  叫我小张就好_7d8e


  1. lock:作用于主内存的变量,它把一个变量标识为一条线程独占的状态
  2. unlock:作用于主内存的变量,它把一个处于锁定状态的变量释放出来
  3. read:作用于主内存的变量,它把一个变量的值从主内存传输到线程的工作内存中
  4. load:作用于工作内存的变量,它把read操作从主内存中得到的变量值放入工作内存的变量副本中
  5. use:作用于工作内存的变量,它把工作内存中一个变量的值传递给执行引擎,每当虚拟机遇到一个需要使用到变量的值的字节码指令时将会执行这个操作
  6. assign:作用于工作内存变量,它把一个从执行引擎变量收到的值赋给工作内存的变量,每当虚拟机遇到一个需要给变量复制的字节码指令时将会执行这个操作
  7. store:作用于工作内存的变量,它把工作内存中一个变量的值传送到主内存中,供随后的 write 使用
  8. write: 作用于主内存的变量,它把store 操作从工作内存中得到的变量的值放入主内存的变量中。

  1. 保证此变量对所有线程的可见性,也就是说,当一条线程修改了这个变量的值,新值对其他线程都是可以立即得知的
  2. 禁止指令重排序优化


上一篇 下一篇

猜你喜欢

热点阅读