相信不进行深入研究的话,没有几个人能够真正明白volatile的含义。
我也一直没有仔细学习java volatile的用法,所有的知识都来自于对C中volatile的理解。
找到一篇很棒的文章:Java 理论与实践: 正确使用 Volatile 变量。推荐大家去读一读。文章内容包括:
- volatile 变量
- 正确使用 volatile 的模式
- volatile 的高级模式
其中提到:正确使用 volatile 变量的条件
您只能在有限的一些情形下使用 volatile 变量替代锁。要使 volatile 变量提供理想的线程安全,必须同时满足下面两个条件:
- 对变量的写操作不依赖于当前值。
- 该变量没有包含在具有其他变量的不变式中。
读后的收获:明确了在什么情况下,可以用volatile代替synchronized。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9844649/viewspace-1021845/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9844649/viewspace-1021845/