Java并发编程:volatile关键字解析

reference:http://www.cnblogs.com/dolphin0520/p/3920373.html

                      http://sakyone.iteye.com/blog/668091

http://blog.csdn.net/lishehe/article/details/47165727

总结:

三种并发:synchronized,volatile,lock

synchronized单线程,线程安全,但效率不足;

volatile:能保证可见性,顺序性,但是不能保持原子性,特别是在i++,并不总是线程安全的


Volatile 变量具有 synchronized 的可见性特性,但是不具备原子特性。这就是说线程能够自动发现 volatile 变量的最新值。Volatile 变量可用于提供线程安全,但是只能应用于非常有限的一组用例:多个变量之间或者某个变量的当前值与修改后值之间没有约束。因此,单独使用 volatile 还不足以实现计数器、互斥锁或任何具有与多个变量相关的不变式(Invariants)的类(例如 “start <=end”)

发布了306 篇原创文章 · 获赞 470 · 访问量 316万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览