新聞中心
1、程序永遠無法運行結(jié)束,根本原因在于:

成都創(chuàng)新互聯(lián)公司專注于瑪多網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供瑪多營銷型網(wǎng)站建設(shè),瑪多網(wǎng)站制作、瑪多網(wǎng)頁設(shè)計、瑪多網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造瑪多網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供瑪多網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
一個線程持有鎖1同時在請求鎖2,另一個線程持有鎖2同時在請求鎖1,二者不得到對方的鎖都不會放開自己的鎖,程序就這樣僵持下去了。
2、實例
兩個線程會同時開啟,程序打印出
print1 first Thread-1 print1 second Thread-1 print2 first Thread-1 print1 first Thread-2
(1)第一個線程先執(zhí)行print1,獲得了鎖1,等待1秒。這時第二個線程已經(jīng)開啟,企圖獲得鎖1,但是獲取不到于是等待
(2)第一個線程等待時間結(jié)束,獲得鎖2,打印結(jié)束釋放兩把鎖。之后馬上開始執(zhí)行print2,并獲得鎖2,等待1秒
(3)這時第二個線程可以獲得鎖1了,開始執(zhí)行print1,也等待1秒
(4)等待時間結(jié)束,第一個線程持有鎖2企圖獲得鎖1,第一個線程持有鎖1企圖獲得鎖2,就陷入了僵局
以上就是Python死鎖的產(chǎn)生原因,希望對大家有所幫助。更多Python學(xué)習(xí)推薦:python教學(xué)
本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。
名稱欄目:創(chuàng)新互聯(lián)Python教程:Python死鎖的產(chǎn)生原因
當(dāng)前鏈接:http://www.dlmjj.cn/article/coioceh.html


咨詢
建站咨詢
