00281 python async/await 关键字


前言

python async/await 关键字。

Operating System: Ubuntu 22.04.4 LTS

参考文档

  1. asyncio — 异步 I/O

介绍

asyncawait 是 Python 3.5 及以上版本中用于编写异步代码的关键字。异步编程是一种处理程序执行的方式,允许程序在等待某些操作完成(如 I/O 操作)时执行其他任务。

以下是一些关于 asyncawait 的基本概念:

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()  # 等待这个协程完成

使用异步代码

要运行异步代码,通常需要以下步骤:

  1. 定义一个或多个异步函数。
  2. 在主函数中使用 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 密集型任务并行化。
  • 异步代码不能与同步代码混合使用,这可能会导致不可预料的行为。

asyncawait 提供了一种更简洁、更易于阅读的方式来编写异步代码,这在处理网络请求、数据库操作等 I/O 密集型任务时特别有用。

结语

第二百八十一篇博文写完,开心!!!!

今天,也是充满希望的一天。


文章作者: LuYF-Lemon-love
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LuYF-Lemon-love !
  目录