首页 > 其他 > 详细

volatile关键字

时间:2019-01-22 00:08:18      阅读:227      评论:0      收藏:0      [点我收藏+]

volatile关键字有两个特性:

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

因为JVM要求线程每次使用工作内存中的volatile变量时,都必须从主内存中刷新获取最新的值;执行线程每次修改工作内存中的volatile变量后也必须立刻将之同步回主内存,这样一个线程修改了volatile变量的值,其他线程可以立即得知。

CPU需要能正确处理指令依赖情况以保障程序能得出正确的执行结果。因为修改volatile变量的值之后需要将之立即同步到主内存,这样就无形中使对修改volatile变量之前的操作依赖于修改后同步到内存的操作,这种依赖关系是CPU在指令重排时也无法忽视的,从而在某种程度上禁止了指令重排序。

 

######

volatile关键字

原文:https://www.cnblogs.com/amunote/p/10301596.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!