什么是async 什么是await
时间: 2023-07-10 19:42:54 浏览: 46
`async` 和 `await` 是 Python 3.5 引入的两个关键字,用于支持异步编程。具体来说,`async` 用于定义一个协程函数,而 `await` 则用于等待一个协程或者异步对象的结果。
在 Python 中,协程是一种轻量级的线程,可以在执行到某个阻塞点时主动让出 CPU,等到阻塞结束后再继续执行,从而实现非阻塞式的并发编程。而 `async` 关键字可以让一个函数变成一个可暂停的协程函数,即当函数执行到 `await` 关键字时会主动让出 CPU,等待异步操作返回结果后再继续执行。
例如,下面是一个使用 `async` 和 `await` 的示例:
```python
import asyncio
async def my_coroutine():
print('开始协程')
await asyncio.sleep(1)
print('协程暂停了一秒钟')
return '结果'
async def main():
coroutine = my_coroutine()
result = await coroutine
print('协程返回了:', result)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
```
在上面的代码中,`my_coroutine()` 是一个协程函数,其中的 `await asyncio.sleep(1)` 会让协程暂停一秒钟,等待异步操作完成后再继续执行。而 `main()` 函数则用于启动协程并等待其返回结果,最后将结果输出。
总之,`async` 和 `await` 是 Python 中用于支持异步编程的关键字,可以让函数变成协程函数,并支持等待异步操作的结果。