进程等待目的:
主进程会等待所有的子进程执行完成以后再退出。
目标:
主进程退出同时销毁子进程
解决方法:
1.把子进程设置成为守护主进程,主进程退出子进程直接销毁
通过sub_process.daemon = True实现
import multiprocessing
import time
def task():
while True:
print("waiting...")
time.sleep(1)
# 标准python写法,直接执行的模块,需要加上判断是否是主模块的代码
if __name__ == '__main__':
# 创建子进程
sub_process = multiprocessing.Process(target=task)
# 把子进程设置成为守护主进程,以后主进程退出子进程直接销毁
sub_process.daemon = True
sub_process.start()
# 主进程延时5秒钟
time.sleep(5)
print("over")
运行结果:
2.退出主进程之前,先让子进程进行销毁
sub_process.terminate()
import multiprocessing
import time
def task():
# for i in range(10):
while True:
print("waiting...")
time.sleep(1)
# 标准python写法,直接执行的模块,需要加上判断是否是主模块的代码
if __name__ == '__main__':
# 创建子进程
sub_process = multiprocessing.Process(target=task)
sub_process.start()
# 主进程延时10秒钟
time.sleep(10)
# 退出主进程之前,先让子进程进行销毁
sub_process.terminate()
print("over")