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