python线程死锁的原因,python中lock锁和阻塞

  python线程死锁的原因,python中lock锁和阻塞

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

  一个线程持有锁1并同时请求锁2,而另一个线程持有锁2并同时请求锁1。在得到对方的锁之前,双方都不会释放自己的锁,程序就这样陷入了僵局。

  2、实例

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

  打印1首线程-1

  打印1秒线程-1

  打印2首线程-1

  1printFirst Thread-2 (1)第一个线程先执行print1,获取lock 1,等待1秒。此时第二个线程已经打开,试图获取lock 1,但是无法获取,所以等待。

  (2)第一个线程等待时间结束,获得锁2,打印后释放两个锁。之后,立即执行print2,获得lock 2,并等待1秒钟。

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

  (4)等待时间结束后,第一个线程持有锁2试图获取锁1,第一个线程持有锁1试图获取锁2,导致死锁。

  以上是Python死锁的原因。希望对你有帮助。更多Python学习推荐:python教学

  本教程运行环境:windows7系统,Python 3.9.1,DELL G3电脑。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: