asyncio
— 非同步 I/O¶
asyncio 是一個使用 async/await 語法編寫併發程式碼的庫。
asyncio 被用作多個 Python 非同步框架的基礎,這些框架提供高效能的網路和 Web 伺服器、資料庫連線庫、分散式任務佇列等。
asyncio 通常非常適合 IO 密集型和高階結構化網路程式碼。
參見
- asyncio 概念概覽
對 asyncio 基礎知識的解釋。
asyncio 提供了一套高層級 API 用於:
併發執行 Python 協程並完全控制它們的執行;
執行網路 IO 和 IPC;
控制子程序;
透過佇列分發任務;
同步併發程式碼;
此外,還有一些低層級 API 供庫和框架的開發者使用,用於:
可用性:非 WASI。
此模組在 WebAssembly 上不起作用或不可用。有關更多資訊,請參閱 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)會觸發審計事件。
在 3.13 版本發生變更: 如果可能,則使用 PyREPL,在這種情況下 PYTHONSTARTUP
也會被執行。會觸發審計事件。
參考
指南和教程
備註
asyncio 的原始碼可以在 Lib/asyncio/ 中找到。