小编典典

死锁和活锁有什么区别?

all

有人可以用示例(代码)解释死锁活锁 有什么区别吗?


阅读 129

收藏
2022-03-30

共1个答案

小编典典

取自http://en.wikipedia.org/wiki/Deadlock

在并发计算中, 死锁 是一组动作的每个成员都在等待其他成员释放锁的状态

活锁 类似于死锁,除了活锁中涉及的进程的状态不断地相互改变,没有进展。活锁是资源匮乏的一种特殊情况;一般定义仅说明特定进程没有进展。

一个真实的活锁示例发生在两个人在狭窄的走廊里相遇,每个人都试图通过移动让对方通过,但他们最终左右摇摆而没有任何进展,因为他们都反复移动在同一时间以同样的方式。

对于一些检测死锁并从死锁中恢复的算法来说,活锁是一种风险。如果有多个进程采取行动,死锁检测算法会被重复触发。这可以通过确保只有一个进程(随机或按优先级选择)采取行动来避免。

2022-03-30