知行编程网知行编程网  2022-11-24 17:00 知行编程网 隐藏边栏  13 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python死锁的产生原因的相关知识,希望可以帮到处于编程学习途中的小伙伴

Python死锁的原因


1、程序永远无法运行结束,根本原因在于:

一个线程持有锁1同时请求锁2,另一个线程持有锁2同时请求锁1。双方都不会释放自己的锁,除非得到对方的锁,程序就这样死锁了。


2、实例

两个线程会同时开启,程序打印出

print1 first Thread-1
print1 second Thread-1
print2 first Thread-1
print1 first Thread-2

(1) 第一个线程先执行print1,获得锁1,等待1秒。这时已经开启了第二个线程,试图获取锁1,但是获取不到,于是等待

(2) 第一个线程等待时间结束,获取锁2,打印完成后释放两个锁。紧接着会执行print2,得到锁2,等待1秒

(3)此时第二个线程可以获得锁1,开始执行print1,等待1秒

(4) 当等待时间结束,第一个线程持有锁2尝试获取锁1,第一个线程持有锁1尝试获取锁2,就死锁了


本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享