python如何获取进程池pool里每个进程的返回值
时间: 2024-09-25 07:02:50 浏览: 87
在Python中,你可以使用`concurrent.futures.ProcessPoolExecutor`的`as_completed()`方法来逐个获取进程池中运行的任务的结果。这个方法会返回一个迭代器,每次迭代都会返回下一个完成的任务及其结果。这里是一个简单的例子:
```python
import concurrent.futures
def worker_function(arg):
# 这是你处理任务的函数
return arg * 2
with concurrent.futures.ProcessPoolExecutor(max_workers=5) as executor:
future_to_result = {executor.submit(worker_function, i): i for i in range(10)}
for future in concurrent.futures.as_completed(future_to_result):
try:
result = future.result()
print(f"Result of process with argument {future_to_result[future]}: {result}")
except Exception as exc:
print(f"Exception raised: {exc}")
```
在这个例子中,我们创建了一个进程池,并将一些任务提交给它。然后,通过`as_completed()`遍历每个完成的任务并获取其结果。
阅读全文