当前位置: 首页
科技数码
Java并发编程指南:深入理解无锁与CAS底层原理

Java并发编程指南:深入理解无锁与CAS底层原理

热心网友 时间:2026-01-08
转载

作为乐观派的代表,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的原子指令,不会导致所谓的数据不一致问题。

来源:https://www.51cto.com/article/833768.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
智元机器人下线首万台,人形量产时代来临?

智元机器人下线首万台,人形量产时代来临?

3月30日,智元机器人宣布第1万台通用具身机器人远征A3在上海正式下线。智元机器人联合创始人、总裁兼CTO彭志辉在接受等媒体采访时表示,下线1万台,意味着智元的本体制造能力,已经完成了从最早的“手工

时间:2026-03-31 09:25
古尔曼:Apple Intelligence意外在中国上线,苹果紧急下架

古尔曼:Apple Intelligence意外在中国上线,苹果紧急下架

IT之家 3 月 31 日消息,据彭博社马克 · 古尔曼今日消息,Apple Intelligence 在中国属于意外上线,该功能已准备就绪数月,但苹果尚未获得监管部门批准。目前没有即将发布的计划,

时间:2026-03-31 09:25
比亚迪2025年财报:营收创新高,净利润下滑,双驱动布局解析

比亚迪2025年财报:营收创新高,净利润下滑,双驱动布局解析

3月27日晚间,比亚迪发布2025年财报,一组看似矛盾的数据引发市场关注:全年营收首次突破8000亿元大关,达到8039 65亿元,同比增长显著;但净利润却同比下滑近两成,仅录得326 19亿元。这

时间:2026-03-31 09:25
长安L4级Robotaxi获准 重庆智都建设加速自动驾驶

长安L4级Robotaxi获准 重庆智都建设加速自动驾驶

长安汽车近日宣布,其自主研发的L4级Robotaxi项目取得重大进展,在重庆成功获得高阶自动驾驶测试牌照。这一突破标志着重庆本土车企在智能驾驶领域实现全栈技术自主可控,为无人驾驶商业化落地按下加速键

时间:2026-03-31 09:25
科大讯飞智能办公本AI深度学习评测:高效办公新体验

科大讯飞智能办公本AI深度学习评测:高效办公新体验

在数字化办公与学习需求持续攀升的背景下,电子设备市场迎来新一轮发展热潮。面对海量产品选择,科大讯飞凭借其在人工智能领域的技术积淀,推出多款智能办公本产品,以差异化功能定位满足不同用户群体的核心需求,

时间:2026-03-31 09:25
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程