有没有办法知道进程池已经完成了任务的运行?
_process_pool = mp.Pool(processes=num_workers)
我将批量任务添加到池中:
for batch in gen_batches():
_process_pool.map_async(fn, batch)
有没有办法知道所有任务何时完成? callback
似乎无法在这里工作。我想通过调用_process_pool.join()
答案 0 :(得分:2)
问题:有没有办法知道所有任务何时完成?
将AsyncResult
的所有pool.map_async(...
附加到list
,例如:
multiple_results = []
for batch in gen_batches():
multiple_results.append( _process_pool.map_async(fn, batch) )
if all([ar.ready() for ar in multiple_results]):
print('Pool done')
else:
print('Pool any alive')
Python»3.6.1文档:multiprocessing.pool.AsyncResult
使用Python测试:3.4.2