思路:
- 通过一个列表记录进程
- 当所有进程运行完成后,逐个导出每个进程的结果
代码如下:
from multiprocessing import Pool
def add(a: int, b: int):
return a + b
if __name__ == "__main__":
pool = Pool(processes=3)
result = [] # 保存进程
for i in range(100):
result.append(pool.apply_async(add, args=(i, i * 3,))) # 维持执行的进程总数为10,当一个进程执行完后添加新进程.
pool.close()
pool.join()
# 此时所有子进程已经执行完毕
for i in result:
print(i.get()) # 打印进程执行结果
最终的结果会与加入进程的顺序保持一致