目录
article
【Java】volatile
【Java】volatile
下面这段是一篇文章的回复,感觉解释的比较清楚:
Volatile 真正解决的问题是 JVM 在-server 模式下 (注意普通运行模式下没有此问题), 线程优先取用自己的线程私有 stack 中的变量值, 而不是公共堆中的值, 造成变量值老旧的问题.
换句话说, Volatile 强制要求了所有线程在使用变量的时候要去公共内存堆中获取值, 不可以偷懒使用自己的.
Volatile 绝对不保证原子性, 原子性只能用 Synchronized 同步修饰符实现.
相关文章: