asyncio --- 异步 I/O (original) (raw)
asyncio 是用来编写 并发 代码的库,使用 async/await 语法。
asyncio 被用作多个提供高性能 Python 异步框架的基础,包括网络和网站服务,数据库连接库,分布式任务队列等等。
asyncio 往往是构建 IO 密集型和高层级 结构化 网络代码的最佳选择。
asyncio 提供一组 高层级 API 用于:
- 并发地 运行 Python 协程 并对其执行过程实现完全控制;
- 执行 网络 IO 和 IPC;
- 控制 子进程;
- 通过 队列 实现分布式任务;
- 同步 并发代码;
此外,还有一些 低层级 API 以支持 库和框架的开发者 实现:
- 创建和管理 事件循环,它提供用于 连接网络, 运行 子进程, 处理 OS 信号 等功能的异步 API;
- 使用 transports 实现高效率协议;
- 通过 async/await 语法 桥接 基于回调的库和代码。
asyncio REPL
你可以在 REPL 中尝试使用 asyncio
并发上下文:
$ python -m asyncio asyncio REPL ... Use "await" directly instead of "asyncio.run()". Type "help", "copyright", "credits" or "license" for more information.
import asyncio await asyncio.sleep(10, result='hello') 'hello'
引发一个不带参数的 审计事件 cpython.run_stdin
。
在 3.12.5 版本发生变更: (还有 3.11.10, 3.10.15, 3.9.20 和 3.8.20) 将发出审计事件。
在 3.13 版本发生变更: 如果无法做到则使用 PyREPL,在此情况下 PYTHONSTARTUP 也会被执行。 将发出审计事件。
参考