多处理池不等待作业完成

时间:2020-05-29 22:41:23

标签: python python-multiprocessing

import multiprocessing
import time

def job(i):
    print('I am job', i)
    while True:
        time.sleep(1)

with multiprocessing.Pool(processes=2) as pool:
    for i in range(2):
        pool.apply_async(job, args=(i,))
pool.join()

这不是要永远等待两个子进程完成,这永远不会发生吗?而是父进程立即退出。

这似乎是使用上下文管理器语法的结果;以下作品:

pool = multiprocessing.Pool(processes=2)
for i in range(2):
    pool.apply_async(job, args=(i,))
pool.close()
pool.join()

0 个答案:

没有答案