'''
一个主线程可以启动几个守护线程,为主线程服务
守护线程为主线程服务,主线程退出,守护线程也自动强制跟着退出,不会执行完。
之前的线程是用join等执行完了主线程才往下走,例如:其他线程对公共变量做累加
如果不加join,主线程直接跑完了,跑完的时候打印公共变量结果,
但此时程序还没结束,公共变量加完之后(其他线程执行完)程序结束。
如果有守护线程,那么程序退出不会等守护线程执行完毕
应用场景:socketserver为每个连接启动新线程,socketserver一停止
全部停止,不会等子线程结束,可以把子线程设为守护线程,方法t.setDemo(True)
'''
import threading
import time
def run(n):
time.sleep(3)
print("task:",n)
start_time = time.time()
for i in range(50):
t = threading.Thread(target=run, args=("t-{0}".format(i),))
t.setDaemon(True) # 把t变成守护线程
t.start()
print("cost:", time.time()-start_time)