猿问

java关键字volatile的作用

volatile 关键字都知道是不能做到线程同步的,只能保证线程之间尽快的获取最新的值,像 concurrentHashmap 之间 value 的修饰就用到了 volatile,我感觉这个关键在没啥用的感觉,,,求解释。

或者说 volatile变量修饰符适用于什么场景?


慕的地10843
浏览 731回答 4
4回答

蓝山帝景

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

墨色风雨

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

慕少森

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

holdtom

楼主可以看下 infoq 的这篇文章:volatile
随时随地看视频慕课网APP

相关分类

Java
我要回答