主进程和子进程的结束顺序
主进程和子进程的结束顺序
- 主进程会等待所有的子进程执行结束后再结束
import multiprocessing
import time
# 工作函数
def work():
for i in range(10):
print('工作中...')
time.sleep(0.2)
if __name__ == '__main__':
# 创建子进程
work_process = multiprocessing.Process(target=work)
# 启动子进程
work_process.start()
# 延时一秒
time.sleep(1)
print("主进程执行完毕")
实际控制台输出如下:
工作中...
工作中...
工作中...
工作中...
工作中...
主进程执行完毕
工作中...
工作中...
工作中...
工作中...
工作中...
如何让控制台的输出与实际一致呢?有两种方法
- 设置守护进程:
子进程对象.daemon = True
- 销毁子进程:
子进程对象.terminate()
if __name__ == '__main__':
# 创建子进程
work_process = multiprocessing.Process(target=work)
# 方法一:设置守护主进程
# work_process.daemon = True
# 启动子进程
work_process.start()
# 延时一秒
time.sleep(1)
# 方法二:手动结束子进程
work_process.terminate()
print("主进程执行完毕")