品易云推流 关闭
文章详情页
文章 > Python高级 > python多线程死锁问题处理

python多线程死锁问题处理

多线程死锁

头像

十一

2020-12-31 15:10:033766浏览 · 0收藏 · 0评论

python多线程死锁.png

死锁的这个概念在很多地方都存在,大概介绍下死锁是怎么产生的

1.A拿了一个苹果 

2.B拿了一个香蕉 

A现在想再拿个香蕉,就在等待B释放这个香蕉,B同时想要再拿个苹果,这时候就等待A释放苹果 

这样就是陷入了僵局,这就是生活中的死锁。

关于死锁的问题解决方案:

1.对锁进行排序

2.可以让线程在尝试持有新的锁失败的时候主动放弃所有目前已经持有的锁,比如我们可以设置机制检测死锁的发生并对其进行处理。

3.对这些锁进行编号。我们规定当一个线程需要同时持有多个锁的时候,必须要按照序号升序的顺序对这些锁进行访问。通过上下文管理器我们可以很容易实现这一点。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图