来阻止父进程
有没有办法知道一个过程池已经完成了任务?
_process_pool = mp.Pool(processes=num_workers)
我通过批量将任务添加到池中:
for batch in gen_batches():
_process_pool.map_async(fn, batch)
有没有办法知道何时完成所有任务?callback
似乎在这里不起作用。我想避免通过调用_process_pool.join()
问题:有没有办法知道何时完成所有任务?
例如:
将所有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文档:多处理.pool.asyncresult
用Python测试:3.4.2