导语:
本文主要介绍了关于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如何进入编辑模式?09/27
- ♥ Anaconda 安装错误:无法创建 Anaconda 菜单08/22
- ♥ 深入讲解Python字符串格式化11/30
- ♥ 在python中使用round函数保留两位小数08/29
- ♥ python3中的接口类是什么?如何使用?12/21
- ♥ python安装请求失败怎么办?11/17
内容反馈