守护线程:
只要主线程结束,那么子线程立即结束,不管子线程有没有运行完成。
案例:
未加守护线程:下面这段代码:先运行主线程先打印:“Done,运行完成”,然后继续休眠3秒子线程启动打印“哈哈哈”。
import threading,time def run(): time.sleep(3) print('哈哈哈') for i in range(5): t = threading.Thread(target=run) t.start() print('Done,运行完成。')
结果:
加守护线程:即:只要主线程结束,那么子线程立即结束,不管子线程有没有运行完成
import threading,time def run(): time.sleep(3) print('哈哈哈') for i in range(5): t = threading.Thread(target=run) t.setDaemon(True) #把子线程设置成为守护线程 t.start() print('Done,运行完成。')
结果:只执行了主线程,子线程也跟着结束,没有打印子线程。