启用守护线程
守护线程,又称后台线程,它是在后台运行的,如果所有前台线程都死亡,那么后台线程就会自动死亡。
import threading
def run(n):
for i in range(n):
print(threading.current_thread().name + " " + str(i))
if __name__ == "__main__":
t = threading.Thread(target=run, args=(100,), name='后台线程')
t.daemon = True # 将此线程设置成后台线程
t.start() # 启动后台线程
# t.join()
for i in range(10):
print(threading.current_thread().name + " " + str(i))
主函数中的for循环和线程t是两个不同的线程,其中for循环是主线程,当把t设置为守护线程时,主线程for循环运行结束后t线程会同时结束。
不启用守护进程
不启动守护进程的运行结果,for循环和t线程会同时运行且for循环主线程运行完成后不干扰t线程的运行。
等待子线程结束运行主线程
在python中可以使用join()
方法让,守护线程运行结束后,主线程在运行,主和子线程同时运行完成后程序关闭。