跳到主要内容
uencoder

Livelock

活锁是线程不断改变状态响应对方但无进展,虽未阻塞但无法完成任务。

用途

理解活锁与死锁的区别及防御,是并发程序进展性缺陷。

机制

线程互相谦让(如都释放锁让对方先取)导致无线程获取资源。与死锁不同:线程活跃但无进展。防御:随机退避、优先级、限制重试。

用例

  • 并发进展性分析
  • 活锁检测
  • 并发设计

相关工具

参考链接