用wait()检查多个 apply_async 是否全部运行完毕的示例
时间: 2024-02-21 07:00:21 浏览: 50
async和await使用简单实例
下面是一个使用 `wait()` 方法来检查多个 `apply_async` 是否全部运行完毕的示例:
```python
from multiprocessing import Pool
def func(x):
# 执行异步任务的代码
return x
if __name__ == '__main__':
with Pool() as pool:
results = []
for i in range(10):
result = pool.apply_async(func, args=(i,))
results.append(result)
# 使用 wait() 方法等待所有异步任务完成
for result in results:
result.wait()
# 所有异步任务已完成,可以处理结果
for result in results:
print(result.get())
```
在上面的示例中,首先创建一个 `Pool` 对象,然后循环调用 `apply_async` 方法提交异步任务,并将返回的 `AsyncResult` 对象存储在一个列表中。接着使用循环来调用每个 `AsyncResult` 对象的 `wait()` 方法,等待所有异步任务完成。最后使用循环来调用每个 `AsyncResult` 对象的 `get()` 方法,获取执行结果。由于所有异步任务已经完成,因此 `get()` 方法会立即返回结果。
阅读全文