RSS
菜单

Python 死锁怎么产生?怎么避免?

死锁:两个及以上线程互相持有对方需要的锁且等待不释放(循环等待)。产生条件:互斥、持有并等待、不可剥夺、循环等待。避免:① 锁顺序一致(全局固定加锁顺序);② 一次只持一把锁(锁粒度拆分);③ 用 with 管理生命周期;④ acquire(timeout) 超时放弃重试(不无限等);⑤ 减少持锁时间(锁内不做 IO/耗时);⑥ 死锁检测:faulthandler、pstack 抓线程栈。经典例子:线程 A 持锁 1 等锁 2,线程 B 持锁 2 等锁 1。

下载推广海报

圈内讨论推广海报

《Python 死锁怎么产生?怎么避免?》完整推广海报
一起交流

全部回复 0

分享经验,让问题更进一步

讨论,从你的观点开始

还没有回复,欢迎补充经验或分享不同的思路。