首页 > 其他 > 详细

volatile是怎么实现的?

时间:2019-12-30 11:44:37      阅读:88      评论:0      收藏:0      [点我收藏+]

首先得稍微了解一下JMM(java内存模型)的相关基础知识,java中的线程在计算机使用的是内存共享的机制,所以使用volatile关键字可以理解为:

(1)答案一:当被volatile关键字修饰的资源有变化的时候,计算机会把CPU中的缓存资源重新刷新一遍,达到变量可见性一致的效果。

(2)答案二:当前计算机基本为多核多线程,在CPU中有一个缓存一致性的协议,由于这个协议使得CPU缓存资源刷新,最终达到变量可见性一致的效果。

volatile和synchronized的区别:

  (1)synchronized即保证了原子性,也保证了变量可见性;

  (2)volatile只保证了变量可见性;

volatile是怎么实现的?

原文:https://www.cnblogs.com/smallVampire/p/12118235.html

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