在下面的情况下,何时需要对Pool
调用.join()
和{
while True:
pool = Pool(processes=4)
results = []
for x in range(1000):
result = pool.apply_async(f, (x,))
results.append(result)
for result in results:
result.get(timeout=1)
print "finished"
我还需要等待另一个进程用join()
和close()
完成吗?正如我假设的那样,由于我正在迭代所有异步结果并等待(阻塞)它们完成,在我到达print finished
时,所有进程都已经退出了?在
这是对的吗?在
另外,什么时候流程开始处理一个函数?我注意到有4个进程与ps -elf
并行运行。在这种情况下,进程是否只在调用result.get()
之后才开始对函数起作用?在
以Proper way to use multiprocessor.Pool in a nested loop开头的链接不错
一旦您调用
pool.apply_async
,进程将开始处理该函数,它将返回一个result对象相关问题 更多 >
编程相关推荐