导语:
本文主要介绍了关于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电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python如何翻转字符串?12/29
- ♥ Python函数的高级用法11/30
- ♥ 如何在python中反转整数输出08/30
- ♥ 如何在python3中创建一个新项目11/10
- ♥ 如何在python中使用__call__函数?01/14
- ♥ Python中常用的搜索数据结构和算法总结11/12
内容反馈