pythonasync/await异步
时间: 2024-11-04 13:08:37 浏览: 14
详解async/await 异步应用的常用场景
Python中的`async`和`await`关键字是用于处理异步编程的关键特性,它们出自于异步生成器(Asynchronous Generators)的概念,通常与协程(Coroutine)一起使用。这里的异步意味着任务不会阻塞线程,而是通过非阻塞的方式执行。
- `async`前缀表示函数是一个协程,它可以在等待某个耗时操作(如网络请求、数据库查询等)的同时继续执行其他任务。这通常发生在`async def`定义的函数内部。
- `await`关键字用于暂停当前协程的执行,并将控制权返回到事件循环(Event Loop)。当await后面的异步任务完成(例如,`await fetch_data()`),结果会传递给`await`语句,然后协程恢复执行。
举个例子:
```python
async def fetch_data():
# 这里是一个模拟耗时的操作
await asyncio.sleep(2)
return "Data fetched"
async def main():
data = await fetch_data()
print(data)
# 启动事件循环并运行协程
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
```
在这个例子中,`main`函数会在等待`fetch_data`返回数据的过程中释放CPU资源做其他事情。这是Python标准库`asyncio`模块的核心理念,有助于提高程序的并发性能。
阅读全文