gpt4 book ai didi

Java 并发 : CAS vs Locking

转载 作者:IT老高 更新时间:2023-10-28 13:51:24 24 4
gpt4 key购买 nike

我正在阅读Java 并发实践一书。在第 15 章中,他们讨论了非阻塞算法和 compare-and-swap (CAS) 方法。

据记载,CAS 的性能比锁定方法好得多。 我想问一下已经使用这两个概念的人,并且想知道您何时更喜欢这两个概念中的哪一个?真的这么快吗?

对我来说,锁的使用更清晰,更容易理解,甚至更好地维护(如果我错了,请纠正我)。我们真的应该专注于创建与 CAS 相关的并发代码而不是锁来获得更好的性能提升,还是可持续性更重要?

我知道何时使用什么可能没有严格的规定。 但我只是想听听一些关于 CAS 新概念的意见和经验。

最佳答案

CAS 通常比锁定快得多,但它确实取决于争用的程度。因为如果值在读取和比较之间发生变化,CAS 可能会强制重试,所以如果有问题的变量受到许多其他线程的重击(或者如果计算新值的成本很高,则线程理论上可能会陷入忙碌等待中)从旧值(或两者))。

CAS 的主要问题是正确编程比锁定要困难得多。请注意,反过来,锁定比消息传递或 STM 更难正确使用。 ,所以不要把这当成是对使用锁的一种响亮的认可。

关于Java 并发 : CAS vs Locking,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2664172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com