过程期待目标:
主过程会期待所有的子过程执行实现当前再退出。
指标:
主过程退出同时销毁子过程
解决办法:
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")
运行后果: