併發編程-線程-14守護線程

一丶守護線程是什麼

daemon()python

守護xx會等待主xx運行完畢後被銷燬。須要強調的是:運行完畢並不是終止運行。線程

  1. 對主進程來講,運行完畢指的是主進程代碼運行完畢
  2. 對主線程來講,運行完畢指的是主線程所在的進程內全部非守護線程通通運行完畢,主線程纔算運行完畢

二丶代碼實現

主線程的結束也就意味着進程的結束
主線程必須等待其餘非守護線程的結束才能結束
(意味子線程在運行的時候須要使用進程中的資源,而主線程一旦結束了資源也就銷燬了)code

from threading import Thread,current_thread
import time



def task(i):
    print(current_thread().name)
    time.sleep(i)
    print('GG')
# for i in range(3):
#     t = Thread(target=task,args=(i,))
#     t.start()
t = Thread(target=task,args=(1,))
t.daemon = True
t.start()
print('主')
# 主線程運行結束以後須要等待子線程結束才能結束呢?
相關文章
相關標籤/搜索