await如何实现异步编程
时间: 2024-05-14 15:18:07 浏览: 5
在 Python 中,异步编程可以通过协程来实现。协程是一种轻量级的线程,可以在同一个线程中实现多个协程的并发执行。Python 3.5 引入了 async 和 await 关键字,使得协程的编写更加方便和易读。
在使用 async 和 await 进行异步编程时,通常需要使用 asyncio 模块来管理协程的执行。asyncio 提供了一个事件循环(event loop),用于管理协程的调度和执行。程序通过将协程注册到事件循环中,来实现异步执行。
下面是一个简单的示例代码,演示了如何使用 async 和 await 实现异步编程:
```python
import asyncio
async def hello():
print("Hello")
await asyncio.sleep(1)
print("World")
async def main():
tasks = [hello() for i in range(5)]
await asyncio.gather(*tasks)
if __name__ == "__main__":
asyncio.run(main())
```
在上面的代码中,定义了一个协程 hello,它首先打印出 Hello,然后等待 1 秒钟,最后打印出 World。在 main 协程中,将 hello 协程创建 5 次,并使用 asyncio.gather 方法将这些协程同时执行。
运行上面的代码,将会输出以下结果:
```
Hello
Hello
Hello
Hello
Hello
World
World
World
World
World
```
可以看到,所有的 Hello 都在一瞬间打印出来了,然后等待 1 秒钟后,所有的 World 也在一瞬间打印出来了。这就是异步编程的效果。