asyncio —- 异步 I/O


Hello World!

  1. import asyncio
  2. async def main():
  3. print('Hello ...')
  4. await asyncio.sleep(1)
  5. print('... World!')
  6. asyncio.run(main())

asyncio 是用来编写 并发 代码的库,使用 async/await 语法。

asyncio 被用作多个提供高性能 Python 异步框架的基础,包括网络和网站服务,数据库连接库,分布式任务队列等等。

asyncio 往往是构建 IO 密集型和高层级 结构化 网络代码的最佳选择。

asyncio 提供一组 高层级 API 用于:

此外,还有一些 低层级 API 以支持 库和框架的开发者 实现:

Availability: not WASI.

此模块在 WebAssembly 平台上无效或不可用。 请参阅 WebAssembly 平台 了解详情。

asyncio REPL

你可以在 REPL 中尝试使用 asyncio 并发上下文:

  1. $ python -m asyncio
  2. asyncio REPL ...
  3. Use "await" directly instead of "asyncio.run()".
  4. Type "help", "copyright", "credits" or "license" for more information.
  5. >>> import asyncio
  6. >>> await asyncio.sleep(10, result='hello')
  7. 'hello'

引发一个不带参数的 审计事件 cpython.run_stdin

在 3.12.5 版本发生变更: (还有 3.11.10, 3.10.15, 3.9.20 和 3.8.20) 将发出审计事件。

在 3.13 版本发生变更: 如果无法做到则使用 PyREPL,在此情况下 PYTHONSTARTUP 也会被执行。 将发出审计事件。

参考

高层级 API

低层级 API

指南与教程

备注

asyncio 的源代码可以在 Lib/asyncio/ 中找到。