python死鎖的產生原因
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學習推薦:請關注IT培訓機構:千鋒教育。