活锁类似于死锁,不同之处在于参与活锁的进程状态不断地相互改变,但没有一个进程取得进展。活锁是资源饥饿的一种特殊情况;一般定义只说明特定进程没有取得进展。
现实世界中的例子是,两个人在狭窄的走廊里相遇,每个人都试图礼貌地让对方先走,结果却左右摇摆,没有取得进展,因为他们总是在同一时间以相同的方式移动。
活锁是某些用于检测和恢复死锁的算法的风险。如果多个进程采取行动,死锁检测算法可能会反复触发。可以通过确保只有一个进程(随机选择或按优先级选择)采取行动来避免这种情况。