# -*- coding: UTF-8 -*- # 把子线程变成守护线程、主程序退出后,不等待守护线程结束就结束, # 但是会等待非守护线程执行完毕才退出 import threading,time def run(num): # 定义每个线程要运行的函数 print("task",num) time.sleep(2) print("task done",num,threading.current_thread()) def run2(num): # 定义每个线程要运行的函数 print("task",num) time.sleep(1) print("task done",num,threading.current_thread()) start_time = time.time() t_objs = [] for i in range(5): t = threading.Thread(target=run, args=('t-%s'%i,)) t.setDaemon(True) #把当前线程设置为守护线程 t.start() #线程设置为守护线程,必须在start之前 t_objs.append(t) print("我是主线程") #主线程, print("time",time.time() - start_time) m = threading.Thread(target=run2, args=("我是m线程",)) m.start() #从结果可以看出,主线程等待了m线程、没有等守护线程