为了账号安全,请及时绑定邮箱和手机立即绑定

java关键字volatile的作用

java关键字volatile的作用

慕的地10843 2019-03-13 13:14:39
volatile 关键字都知道是不能做到线程同步的,只能保证线程之间尽快的获取最新的值,像 concurrentHashmap 之间 value 的修饰就用到了 volatile,我感觉这个关键在没啥用的感觉,,,求解释。或者说 volatile变量修饰符适用于什么场景?
查看完整描述

4 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

用于修饰 多线程共享变量。使用此关键字保证jvm不会从线程变量中读写,而是直接操作共享变量


查看完整回答
反对 回复 2019-04-15
?
墨色风雨

TA贡献1853条经验 获得超6个赞

我的理解是:如果有一个变量,有多个线程读,但只有一个线程写,那么此变量用 volatile 可以保证读到正确的值。volatile 的一个经典的应用是 Double-checked locking ,它是一种在多线程环境下正确且高效地实现单例模式的方法。


查看完整回答
反对 回复 2019-04-15
?
慕少森

TA贡献2019条经验 获得超9个赞

volatile是保证被修饰变量的可见性,而不保证原子操作,经典应用是Double-checked locking。比如在多线程环境下修饰一个boolean变量。


查看完整回答
反对 回复 2019-04-15
?
holdtom

TA贡献1805条经验 获得超10个赞

楼主可以看下 infoq 的这篇文章:volatile


查看完整回答
反对 回复 2019-04-15
  • 4 回答
  • 0 关注
  • 730 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号