非守护线程:
如果一个进程有多个线程,程序不会主线程结束以后就结束,而是在所有的线程都结束才结束
守护线程:
主线程序结束,子线程就结束(主线程结束,程序就结束)
举例:
import time
from threading import Thread
def download(url):
print('开始.....')
time.sleep(10)
print(url,'结束')
if __name__ == '__main__':
t1 = Thread(target=download, args=('肖生克的救赎',))
t2 = Thread(target=download, args=('霸王别姬',))
# 添加守护线程
t1.setDaemon(True)
t2.setDaemon(True)
t1.start()
t2.start()
print('主线程结束!')
执行结果:
开始.....
开始.....主线程结束!