多处理池的非阻滞检测完成任务



有没有办法知道一个过程池已经完成了任务?

_process_pool = mp.Pool(processes=num_workers)

我通过批量将任务添加到池中:

for batch in gen_batches():
   _process_pool.map_async(fn, batch)

有没有办法知道何时完成所有任务?callback似乎在这里不起作用。我想避免通过调用_process_pool.join()

来阻止父进程

问题:有没有办法知道何时完成所有任务?

例如:

将所有AsyncResultpool.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

相关内容

  • 没有找到相关文章

最新更新