<abbr id="ciwa6"><option id="ciwa6"></option></abbr>
  • <sup id="ciwa6"><kbd id="ciwa6"></kbd></sup>
    <small id="ciwa6"></small>
  • 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

    400-811-9990
    手機站
    千鋒教育

    千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

    千鋒教育

    掃一掃進(jìn)入千鋒手機站

    領(lǐng)取全套視頻
    千鋒教育

    關(guān)注千鋒學(xué)習(xí)站小程序
    隨時隨地免費學(xué)習(xí)課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當(dāng)前位置:成都千鋒IT培訓(xùn)  >  技術(shù)干貨  >  python死鎖的產(chǎn)生原因

    python死鎖的產(chǎn)生原因

    來源:千鋒教育
    發(fā)布人:xqq
    時間: 2023-11-08 18:59:51

    python死鎖的產(chǎn)生原因

    1、程序永遠(yuǎn)無法運行結(jié)束,根本原因在于:

    一個線程持有鎖1同時在請求鎖2,另一個線程持有鎖2同時在請求鎖1,二者不得到對方的鎖都不會放開自己的鎖,程序就這樣僵持下去了。

    2、實例

    兩個線程會同時開啟,程序打印出

    print1firstThread-1

    print1secondThread-1

    print2firstThread-1

    print1firstThread-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í)推薦:請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。

    聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

    猜你喜歡LIKE

    python delattr函數(shù)如何使用?

    2023-11-10

    python time.strptime的格式化

    2023-11-10

    pythonGIL在Python多線程的應(yīng)用

    2023-11-10

    最新文章NEW

    python中pdb模塊怎么用?

    2023-11-10

    Python如何截圖保存?

    2023-11-10

    python?中缺少module怎么辦?

    2023-11-10

    相關(guān)推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網(wǎng)友熱搜 更多>>