日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python-线程的生命周期

發布時間:2025/3/20 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python-线程的生命周期 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

線程的生命周期

所謂的xx生命周期,其實就是某對象的包含產生和銷毀的一張狀態圖。線程的生命周期如下圖所示:

各狀態的說明如下:
  • New新建。新創建的線程經過初始化后,進入Runnable狀態。
  • Runnable就緒。等待線程調度。調度后進入運行狀態。
  • Running運行。
  • Blocked阻塞。暫停運行,解除阻塞后進入Runnable狀態重新等待調度。
  • Dead消亡。線程方法執行完畢返回或者異常終止。
  • ?

    可能有3種情況從Running進入Blocked:
    • 同步:線程中獲取同步鎖,但是資源已經被其他線程鎖定時,進入Locked狀態,直到該資源可獲取(獲取的順序由Lock隊列控制)
    • 睡眠:線程運行sleep()或join()方法后,線程進入Sleeping狀態。區別在于sleep等待固定的時間,而join是等待子線程執行完。sleep()確保先運行其他線程中的方法。當然join也可以指定一個“超時時間”。從語義上來說,如果兩個線程a,b, 在a中調用b.join(),相當于合并(join)成一個線程。將會使主調線程(即a)堵塞(暫停運行, 不占用CPU資源), 直到被調用線程運行結束或超時, 參數timeout是一個數值類型,表示超時時間,如果未提供該參數,那么主調線程將一直堵塞到被調線程結束。最常見的情況是在主線程中join所有的子線程。
    • 等待:線程中執行wait()方法后,線程進入Waiting狀態,等待其他線程的通知(notify)。wait方法釋放內部所占用的瑣,同時線程被掛起,直至接收到通知被喚醒或超時(如果提供了timeout參數的話)。當線程被喚醒并重新占有瑣的時候,程序才會繼續執行下去。

     threading.Lock()不允許同一線程多次acquire(), 而RLock允許, 即多次出現acquire和release

    ?

    轉載于:https://www.cnblogs.com/JohnABC/p/4023100.html

    總結

    以上是生活随笔為你收集整理的Python-线程的生命周期的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。