python if else用法 三个判断条件(Python死锁的产生原因)
导读:1、程序永远无法运行结束,根本原因在于:...
1 、程序永远无法运行结束 ,根本原因在于:
一个线程持有锁1同时在请求锁2 ,另一个线程持有锁2同时在请求锁1 ,二者不得到对方的锁都不会放开自己的锁 ,程序就这样僵持下去了 。
2 、实例
两个线程会同时开启 ,程序打印出
print1firstThread-1 print1secondThread-1 print2firstThread-1 print1firstThread-2(1)第一个线程先执行print1 ,获得了锁1 ,等待1秒 。这时第二个线程已经开启 ,企图获得锁1 ,但是获取不到于是等待
(2)第一个线程等待时间结束 ,获得锁2 ,打印结束释放两把锁 。之后马上开始执行print2 ,并获得锁2,等待1秒
(3)这时第二个线程可以获得锁1了 ,开始执行print1 ,也等待1秒
(4)等待时间结束,第一个线程持有锁2企图获得锁1 ,第一个线程持有锁1企图获得锁2 ,就陷入了僵局
以上就是Python死锁的产生原因 ,希望对大家有所帮助 。更多Python学习推荐:python教学
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!