volatile变量在什么时候实用,可以保证原子性?
volatile变量在什么时候适用,可以保证原子性???
最近在看《深入理解java虚拟机》,volatile变量的适用场景:
1、运算结果并不依赖变量的当前值,
2、变量不需要与其他的状态变量共同参与不变约束
怎么理解??
有没有比较个人的体会??
------解决方案--------------------
仅volatile不能保证原子性。
运算结果并不依赖变量的当前值
—— 举例,连并发的 i++ 都无法保证最终结果正确性。
有大量大牛写了关于 volatile 的案例啥的,你Google下就应该大把。
------解决方案--------------------
volatile我以前也研究过
不过后来看很多并发的项目或框架,很少用到的
基本是通过同步锁来保证变量的线程安全性
最近在看《深入理解java虚拟机》,volatile变量的适用场景:
1、运算结果并不依赖变量的当前值,
2、变量不需要与其他的状态变量共同参与不变约束
怎么理解??
有没有比较个人的体会??
------解决方案--------------------
仅volatile不能保证原子性。
运算结果并不依赖变量的当前值
—— 举例,连并发的 i++ 都无法保证最终结果正确性。
有大量大牛写了关于 volatile 的案例啥的,你Google下就应该大把。
------解决方案--------------------
volatile我以前也研究过
不过后来看很多并发的项目或框架,很少用到的
基本是通过同步锁来保证变量的线程安全性