亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python守護線程的作用是什么

發布時間:2020-09-24 09:46:48 來源:億速云 閱讀:282 作者:Leah 欄目:編程語言

本篇文章為大家展示了Python守護線程的作用是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

有一種線程,它是在后臺運行的,它的任務是為其他線程提供服務,這種線程被稱為“后臺線程(Daemon Thread)”,又稱為“守護線程”或“精靈線程”。Python 解釋器的垃圾回收線程就是典型的后臺線程。

后臺線程有一個特征,如果所有的前臺線程都死亡了,那么后臺線程會自動死亡。

調用 Thread 對象的 daemon 屬性可以將指定線程設置成后臺線程。下面程序將指定線程設置成后臺線程,可以看到當所有的前臺線程都死亡后,后臺線程隨之死亡。當在整個虛擬機中只剩下后臺線程時,程序就沒有繼續運行的必要了,所以程序也就退出了。

import threading

# 定義后臺線程的線程執行體與普通線程沒有任何區別
def action(max):
    for i in range(max):
        print(threading.current_thread().name + "  " + str(i))
t = threading.Thread(target=action, args=(100,), name='后臺線程')
# 將此線程設置成后臺線程
# 也可在創建Thread對象時通過daemon參數將其設為后臺線程
t.daemon = True
# 啟動后臺線程
t.start()
for i in range(10):
    print(threading.current_thread().name + "  " + str(i))
# -----程序執行到此處,前臺線程(主線程)結束------
# 后臺線程也應該隨之結束

上面程序中先將 t 線程設置成后臺線程(第 10 行代碼),然后啟動該線程。本來該線程應該執行到 i 等于 99 時才會結束,但在運行程序時不難發現,該后臺線程無法運行到 99,因為當主線程也就是程序中唯一的前臺線程運行結束后,程序會主動退出,所以后臺線程也就被結束了。

從上面的程序可以看出,主線程默認是前臺線程,t線程默認也是前臺線程。但并不是所有的線程默認都是前臺線程,有些線程默認就是后臺線程。前臺線程創建的子線程默認是前臺線程,后臺線程創建的子線程默認是后臺線程。

可見,創建后臺線程有兩種方式:

主動將線程的 daemon 屬性設置為 True。

后臺線程啟動的線程默認是后臺線程。

注意,當前臺線程死亡后,Python 解釋器會通知后臺線程死亡,但是從它接收指令到做出響應需要一定的時間。如果要將某個線程設置為后臺線程,則必須在該線程啟動之前進行設置。也就是說,將 daemon 屬性設為 True,必須在 start() 方法調用之前進行,否則會引發 RuntimeError 異常。

上述內容就是Python守護線程的作用是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长沙市| 探索| 临洮县| 呼和浩特市| 高碑店市| 调兵山市| 延吉市| 苏州市| 永吉县| 息烽县| 安庆市| 正镶白旗| 黔西| 瑞安市| 白银市| 安福县| 巴中市| 育儿| 花莲市| 怀仁县| 周宁县| 白玉县| 五原县| 龙江县| 启东市| 保定市| 彰武县| 邯郸县| 贡山| 贡嘎县| 天全县| 淮北市| 阿拉善左旗| 鄄城县| 南平市| 鹿泉市| 正宁县| 榆树市| 安塞县| 东丰县| 贵港市|