前言
python async/await 关键字。
Operating System: Ubuntu 22.04.4 LTS
参考文档
介绍
async
和 await
是 Python 3.5 及以上版本中用于编写异步代码的关键字。异步编程是一种处理程序执行的方式,允许程序在等待某些操作完成(如 I/O 操作)时执行其他任务。
以下是一些关于 async
和 await
的基本概念:
async
async
是一个用于定义异步函数的关键字。异步函数与普通函数不同,它们在调用时不会立即执行,而是返回一个协程(coroutine)对象。- 异步函数可以包含
await
表达式,也可以包含其他异步函数的调用。
示例:
async def async_function():
# 异步操作...
pass
await
await
关键字用于等待一个协程完成。它只能在异步函数内部使用。- 当一个协程在
await
表达式中等待时,当前的异步函数会暂停执行,释放控制权,直到被等待的协程完成。
示例:
async def another_async_function():
# 异步操作...
pass
async def main():
await another_async_function() # 等待这个协程完成
使用异步代码
要运行异步代码,通常需要以下步骤:
- 定义一个或多个异步函数。
- 在主函数中使用
asyncio.run()
来运行主协程。
示例:
import asyncio
async def say_after(delay, what):
await asyncio.sleep(delay)
print(what)
async def main():
print(f"started at {time.strftime('%X')}")
await say_after(1, 'hello')
await say_after(2, 'world')
print(f"finished at {time.strftime('%X')}")
asyncio.run(main())
在这个例子中,asyncio.run(main())
是程序执行的入口点,main
协程会依次等待 say_after
协程的完成。
注意事项
- 异步编程可以提高 I/O 密集型应用的性能,但它不会使 CPU 密集型任务并行化。
- 异步代码不能与同步代码混合使用,这可能会导致不可预料的行为。
async
和 await
提供了一种更简洁、更易于阅读的方式来编写异步代码,这在处理网络请求、数据库操作等 I/O 密集型任务时特别有用。
结语
第二百八十一篇博文写完,开心!!!!
今天,也是充满希望的一天。