无等待和无锁算法的示例说明

无等待和无锁算法的示例说明,第1张

无等待和无锁算法的示例/说明

如果一个程序是无锁的,则基本上意味着它 的至少一个 线程可以保证在任意时间段内取得进展。如果程序死锁,则它的所有线程(因此也就整个程序)都无法取得进展-
我们可以说它不是无锁的。由于保证了无锁程序的进展,因此保证了它们的完成(假定有限执行而没有例外)。

无等待是一个更强的条件,这意味着无论线程执行的时间/顺序如何,都保证 每个
线程都可以在任意时间段内取得进展。因此我们可以说线程独立完成。所有无需等待的程序都是无锁的。

我不知道有任何Java例子可以说明这一点,但是我可以告诉您,无锁/无等待程序通常是使用CAS指令之类的低级原语实现的,没有锁。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5507663.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存