更新時間:2023-03-03 來源:黑馬程序員 瀏覽量:
在Python中,守護(hù)線程是指在程序運(yùn)行時在后臺運(yùn)行的線程,當(dāng)主線程結(jié)束時,守護(hù)線程也會隨之結(jié)束。守護(hù)線程通常用于執(zhí)行一些不需要阻塞主線程或長時間運(yùn)行的任務(wù)。
下面是一個簡單的守護(hù)線程的代碼演示:
import threading import time # 定義一個線程類 class MyThread(threading.Thread): # 重寫run方法 def run(self): print('線程開始運(yùn)行') time.sleep(5) print('線程結(jié)束運(yùn)行') # 創(chuàng)建一個守護(hù)線程 t = MyThread() t.setDaemon(True) # 設(shè)置為守護(hù)線程 t.start() # 主線程執(zhí)行 print('主線程結(jié)束')
在上面的代碼中,我們創(chuàng)建了一個線程類MyThread,重寫了run方法,該方法會在線程開始運(yùn)行時輸出一條信息,然后暫停5秒鐘,最后再輸出一條信息表示線程結(jié)束運(yùn)行。接著我們創(chuàng)建了一個實例t,并將其設(shè)置為守護(hù)線程,然后啟動線程。
在主線程執(zhí)行時,我們輸出一條信息表示主線程結(jié)束。由于t是一個守護(hù)線程,當(dāng)主線程結(jié)束時,守護(hù)線程也會隨之結(jié)束。如果t不是一個守護(hù)線程,那么在線程運(yùn)行完畢前,主線程會一直阻塞等待線程運(yùn)行結(jié)束。