码迷,mamicode.com
首页 > 编程语言 > 详细

Java Volatile keyword

时间:2017-08-02 11:09:34      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:content   多个   内存   pop   mod   不同的   回写   gif   src   

Volatile修饰的成员变量在每次被线程訪问时,都强迫从主内存中重读该成员变量的值。并且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在不论什么时刻,两个不同的线程总是看到某个成员变量的同一个值。

   
技术分享  
技术分享Java语言规范中指出:为了获得最佳速度,同意线程保存共享成员变量的私有拷贝,并且仅仅当线程进入或者离开同步代码块时才与共享成员变量的原始值对照。

   
技术分享  
技术分享这样当多个线程同一时候与某个对象交互时。就必需要注意到要让线程及时的得到共享成员变量的变化。

   
技术分享  
技术分享而volatilekeyword就是提示VM:对于这个成员变量不能保存它的私有拷贝,而应直接与共享成员变量交互。   
技术分享  
技术分享使用建议:在两个或者很多其它的线程訪问的成员变量上使用volatile。

当要訪问的变量已在synchronized代码块中。或者为常量时。不必使用。   
技术分享  
技术分享因为使用volatile屏蔽掉了VM中必要的代码优化。所以在效率上比較低,因此一定在必要时才使用此keyword。   
技术分享 

Java Volatile keyword

标签:content   多个   内存   pop   mod   不同的   回写   gif   src   

原文地址:http://www.cnblogs.com/cxchanpin/p/7272681.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!