Java并发编程指南:深入理解无锁与CAS底层原理
作为乐观派的代表,CAS操作总是怀揣着必胜的信念。当多个线程同时对同一个变量执行CAS操作时,只会有一个胜出并成功更新,其余的都将以失败告终。不过,失败的线程并不会被挂起,它只是被告知操作失败,并允许再次尝试。当然,失败的线程也可以选择放弃操作,这一点从图中同样可以观察到。
1. 无锁的概念
提起无锁(Lock-Free)概念,乐观主义者与悲观主义者总是被相提并论。在乐观主义者看来,事物总是倾向于往好的方向发展,认为糟糕情况发生的概率极低,因此他们可以无所顾忌地行动。然而,对于悲观主义者而言,他们总是担心如果发展趋势没有得到及时控制,未来将无法挽回,即使这种无法挽回的情况几乎不可能发生。
这两派观点被映射到并发编程中,就如同加锁(Locking)和无锁(Lock-Free)这两种策略。具体来说,加锁是一种悲观的策略,而无锁则是一种乐观的策略。
因为对于使用加锁的并发程序而言,它总是默认每次访问共享资源时必然会发生冲突,因此必须对每个数据操作实施加锁策略。
而无锁策略则总是假设在访问共享资源时没有冲突,线程可以在不加锁或等待的情况下继续运行。一旦检测到冲突,无锁策略会使用一种称为CAS的技术来确保线程执行的安全性,而这种CAS技术正是实现无锁策略的关键。
接下来,让我们深入探讨CAS技术的奥妙。
2. CAS
2.1 什么是CAS
CAS的全称是Compare And Swap,即比较并交换。其算法的核心思想如下:

它包含三个参数:
V 代表要更新的变量 E 代表预期值 N 代表新值如果V的值等于E的值,则将V的值设置为N。如果V和E的值不同,则表示另一个线程已经进行了更新,当前线程什么也不做。通俗的理解是,CAS操作需要我们提供一个预期值。当预期值与当前线程手中的变量值相同时,说明没有其他线程修改过该值,当前线程可以进行修改,即执行CAS操作。但如果预期值与当前值不匹配,则说明该值已被其他线程修改。此时,不执行更新操作,但你可以选择重新读取变量并尝试再次修改,或者也可以放弃操作。
由于CAS操作属于乐观派,它总是相信自己能成功完成操作。当多个线程同时对同一个变量使用CAS操作时,只有一个会胜出并更新成功,其余的都将会失败。然而,失败的线程不会被挂起,只是被告知失败并允许再次尝试。当然,也允许失败的线程放弃操作,这一点从图中也可以看出。
基于这样的原理,即使在CAS操作中没有锁,它仍然能感知到其他线程的操作对共享资源的影响,并执行相应的处理措施。同时,从这一点也可以看出,由于无锁操作中没有锁,因此不可能出现死锁情况,也就是说,无锁操作天生免疫死锁。
2.2 CPU对CAS的指令支持
也许我们会有这样的疑问。假设有多个线程执行CAS操作,且CAS中有很多步骤。有没有可能在判断V和E相同之后,正要赋值的时候,线程被切换了,导致数值被改变,从而引发数据不一致?答案是肯定的否定,因为CAS是一条系统原语。原语属于操作系统术语的范畴。它由若干条指令组成,是用于完成特定功能的过程。而且,原语的执行必须是连续的,在执行过程中不允许被中断。也就是说,CAS是一条CPU的原子指令,不会导致所谓的数据不一致问题。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
AI学会认路如何补齐产业化最后拼图
AI编程工具虽能快速生成代码,却常因调用过时接口导致地图定位不准。这种空间逻辑的缺陷阻碍了AI融入物理世界。百度地图已服务超400万开发者,提供数百项API。当AI通过地图学会“认路”,便能跨越虚拟与现实的关键门槛,推动AI产业化的真正爆发。
雷蛇灵刃18游戏本发布 台式机性能助力游戏与AI开发
雷蛇发布新款灵刃18游戏本,采用一体成型再生铝机身,兼顾高端质感与环保。搭载RTX5090显卡,在AI图像生成与推理等测试中性能强劲。产品现已上市,起售价31999元。
三星 Galaxy S24 手机自燃致用户受伤 韩国用户反映情况
韩国用户反映,正常使用且未充电的三星GalaxyS24手机突然冒烟并爆炸,导致用户手部轻微灼伤。用户强调手机无跌落或第三方维修史。消防部门初步判断符合锂电池自燃特征。三星官方尚未公开回应,但已指示当地售后联系用户,预计将回收设备进行检测。事件原因有待进一步调查。
三星Galaxy Z Fold8 Wide折叠手机双摄曝光 主摄超广角均达5000万像素
三星GalaxyZFold8Wide折叠屏手机据传将采用双摄系统,主摄与超广角均为5000万像素,配备4800mAh电池。其内屏尺寸约7 6英寸,展开后机身厚度或仅4 5毫米。该机型预计7月发布,旨在抢占市场先机,应对苹果可能推出的折叠屏产品。
妙鸭相机团队去年解散目前仅维持基本运营
妙鸭相机团队已于去年9月底解散,目前仅维持产品基本运行。该团队核心成员约十余人,高峰期曾达三四十人。作为阿里大文娱内部孵化的AIGC应用,其于2023年7月正式上线后迅速走红,用户可通过上传照片并付费生成数字分身与AI写真,曾风靡一时。
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

