python 守护线程
一、基础概念
1、守护线程:在主线程代码执行结束后,等待其它子线程执行结束,守护线程结束
2、守护进程:随着主进程代码执行结束,守护进程结束
3、主线程执行结束,它所在的进程执行结束
4、主进程代码执行结束,主进程并没结束,等待其它子进程执行结束并回收资源
二、示例
# 守护线程 import time from threading import Thread def test1(): while 1: time.sleep(1) print('Hello, World') def test2(n): time.sleep(4) print(n) t1 = Thread(target=test1) t1.daemon = True # 设置t1为守护线程 t1.start() for i in range(3): t2 = Thread(target=test2, args=(i, )) t2.start() print('==========================') # 到这里,主线程代码执行完毕,守护线程没有结束 """ 结果: ========================== Hello, World Hello, World Hello, World 1 0 Hello, World 2 """
# 守护进程 from multiprocessing import Process def test1(): while 1: print('Hello, world') def test2(n): print(n) if __name__ == '__main__': p1 = Process(target=test1) p1.daemon = True # 设置p1为守护进程 p1.start() for i in range(3): p2 = Process(target=test2, args=(i, )) p2.start() print('===============') # 主进程代码执行结束,守护进程结束 """ 结果: =============== 0 1 2 """