asyncio
--- 异步 I/O¶
asyncio 是用来编写 并发 代码的库,使用 async/await 语法。
asyncio 被用作多个提供高性能 Python 异步框架的基础,包括网络和网站服务,数据库连接库,分布式任务队列等等。
asyncio 往往是构建 IO 密集型和高层级 结构化 网络代码的最佳选择。
asyncio 提供一组 高层级 API 用于:
并发地 运行 Python 协程 并对其执行过程实现完全控制;
执行 网络 IO 和 IPC;
控制 子进程;
通过 队列 实现分布式任务;
同步 并发代码;
此外,还有一些 低层级 API 以支持 库和框架的开发者 实现:
使用 transports 实现高效率协议;
通过 async/await 语法 桥接 基于回调的库和代码。
Availability: not Emscripten, not WASI.
此模块在 WebAssembly 平台 wasm32-emscripten
和 wasm32-wasi
上不适用或不可用。 请参阅 WebAssembly 平台 了解详情。
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) 发出审计事件。
参考
备注
asyncio 的源代码可以在 Lib/asyncio/ 中找到。