通常,CAS比锁定快得多,但是它确实取决于争用程度。因为如果数值在读取和比较之间变化,CAS可能会强制重试,因此,如果所讨论的变量受到许多其他线程的重击(或者计算新值的成本很高),则该线程理论上可能陷入忙碌等待中从旧值(或两者兼有)。
CAS的主要问题是正确编程比锁定困难得多。请注意,与使用消息传递或STM相比,使用锁反过来更难正确使用,因此请不要将其视为使用锁的敲门砖。
欢迎分享,转载请注明来源:内存溢出
通常,CAS比锁定快得多,但是它确实取决于争用程度。因为如果数值在读取和比较之间变化,CAS可能会强制重试,因此,如果所讨论的变量受到许多其他线程的重击(或者计算新值的成本很高),则该线程理论上可能陷入忙碌等待中从旧值(或两者兼有)。
CAS的主要问题是正确编程比锁定困难得多。请注意,与使用消息传递或STM相比,使用锁反过来更难正确使用,因此请不要将其视为使用锁的敲门砖。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)