无论是进程还是线程,都遵循:守护xx会等待主xx运行完毕后被销毁。需要强调的是:运行完毕并非终止运行。
from threading import Thread,enumerate,currentThread
import time
'''
守护线程:
守护的是进程的运行周期,只要当前进程中一个线程在运行就会守护
'''
def task():
print('守护线程开始')
print(currentThread())
time.sleep(20)
def task2():
print('子线程 start')
time.sleep(5)
print(enumerate()) # 主线程结束了,但是 守护进程并没有死掉
print('子线程 end')
if __name__ == '__main__':
t1 = Thread(target=task)
t2 = Thread(target=task2)
t1.setName("守护线程")
t2.setName("子线程")
t1.daemon = True # 守护线程
t2.start()
t1.start()
print('主')
原文:https://www.cnblogs.com/XuChengNotes/p/11552843.html