##### asyncio.gather()
- `awaitable asyncio.gather(*aws, return_exceptions=False)`
- `asyncio.gather()` 函数用于同时运行多个可等待对象(awaitable objects),并等待它们全部完成。它返回一个包含所有可等待对象的结果的列表。这些可等待对象可以是协程、任务、Future 对象等。
- `*aws`:一个可变数量的可等待对象(协程、任务等)。你可以传递一个或多个可等待对象作为参数。
- `return_exceptions`:一个可选参数,如果设置为 `True`,则在等待期间抛出的异常将被收集并放在结果列表中;如果设置为 `False`(默认值),则遇到异常时整个 `asyncio.gather()` 调用将被中断。
- 该函数返回一个协程(`coroutine`),在调用这个协程时,它会并发地运行传递的可等待对象,并等待它们全部完成。最终返回一个包含所有可等待对象的结果的列表。
```python
import asyncio
async def coro1(people):
print(f"{people}号客人: 点中餐")
await asyncio.sleep(1) # 模拟等待另一制作协程
print(f"{people}号客人: 拿中餐")
return f"{people}号客人: 中餐完成"
async def coro2(people):
print(f"{people}号客人: 点西餐")
await asyncio.sleep(1) # 模拟等待另一制作协程
print(f"{people}号客人: 拿西餐")
return f"{people}号客人: 西餐完成"
async def main():
results = await asyncio.gather(coro1(1), coro2(2))
print("Results:", results)
asyncio.run(main())
```