java中volatile加原子操作能取代synchronized和锁吗?

本文探讨了在并发环境中,volatile加原子操作是否能替代synchronized和锁。结论指出,对于复杂的并发问题,如需确保判断和更新操作的原子性,仅靠volatile和原子操作是不够的,必须使用synchronized或锁来保证。详细解析了不同场景下各种并发控制机制的适用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

volatile加原子操作能取代synchronized和锁吗?答案是否定的。比如需求如果是,在并发环境下判断票数是否大于零,如果大于零就买票。 判断加更新总体是个原子操作。这种情况只能用锁和synchronized。volatile加原子操作解决不了问题。其实想彻底解决并发环境的问题,只 能用synchronized和锁。volatile和原子操作只能在有些特殊的情况下解决一点小问题(比如不加判断直接更新),当问题变得复杂时,volatile和原子操作就完全不能胜任了。

更多请见:http://www.mark-to-win.com/tutorial/java_6_CanVolatileReplaceSynchronized.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值