循环来调用每个 AsyncResult 对象的 wait() 方法等待所有异步任务完成的示例
时间: 2024-02-21 21:01:09 浏览: 122
好的,下面是一个简单的示例代码:
```python
import asyncio
async def some_async_task():
# 这里是异步任务的代码
await asyncio.sleep(1)
print("async task completed")
async def main():
tasks = []
for i in range(5):
task = asyncio.create_task(some_async_task())
tasks.append(task)
await asyncio.gather(*tasks)
asyncio.run(main())
```
在这个示例中,我们定义了一个异步任务 `some_async_task`,它会等待 1 秒钟然后打印一条完成信息。
在 `main` 函数中,我们创建了 5 个 `some_async_task` 的异步任务,并将它们添加到任务列表 `tasks` 中。然后我们使用 `asyncio.gather(*tasks)` 来等待所有异步任务完成。
`asyncio.gather` 函数会接收一个或多个可等待对象,它会将它们包装为一个协程,然后等待所有协程完成。在这个示例中,我们使用 `*tasks` 来将任务列表展开为多个位置参数传递给 `asyncio.gather` 函数。
当所有异步任务完成后,程序会输出以下内容:
```
async task completed
async task completed
async task completed
async task completed
async task completed
```
这说明所有异步任务都已经完成了。
阅读全文