學習筆記-python守護執行緒和時間延遲
阿新 • • 發佈:2018-12-13
python守護執行緒和時間延遲
也許我們存在這種需求,有些執行緒是處於監聽功能的執行緒,希望其一直執行下去,直到關機,那麼對於一個程式而言,在啟動之後一個程序裡面可以存在很多個執行緒,其他執行緒先執行完成,如果存在某個執行緒需要一直執行,那麼這個程式就無法退出,此時就需要守護執行緒這種方式進行,一旦設定成為守護執行緒,這個執行緒會按照自己的程式碼執行,直到執行完成,如果其先於非守護執行緒執行完成,則看不出任何區別,如果其他非守護執行緒都執行完成,則在直譯器上會看到程式碼執行完畢,程式退出,而守護執行緒還在繼續執行
import threading
import time
def set_save_demo():
print('守護執行緒開啟')
time.sleep(3)
print('這是守護執行緒結束')
def demo_function():
print('這是普通執行緒')
def time_function(): # 定義時間延遲執行執行緒
print('時間延遲5秒後執行的執行緒')
if __name__ == '__main__':
# 建立執行緒
t1 = threading.Thread(target=set_save_demo)
t2 = threading.Thread( target=demo_function)
t3 = threading.Timer(5,function=time_function)
# 設定t1為守護執行緒
t1.setDaemon(True) # 設定之後再pycharm中只能看到t2的列印結果和t1前面一句
# 啟動執行緒
t1.start()
t2.start()
t3.start()
當去掉執行緒3的時候我們將看到輸出結果只有守護執行緒開啟
執行緒3採用的是時間延遲執行方式,這裡使用的是延遲5秒鐘之後進行執行 ,加入之後就能夠看到守護執行緒能夠執行完成