asyncio
--- 非同期 I/O¶
asyncio は async/await 構文を使い 並行処理の コードを書くためのライブラリです。
asyncio は、高性能なネットワークとウェブサーバ、データベース接続ライブラリ、分散タスクキューなどの複数の非同期 Python フレームワークの基盤として使われています。
asyncio は多くの場合、 IOバウンドだったり高レベルの 構造化された ネットワークコードに完璧に適しています。
asyncio は次の目的で 高レベル API を提供しています:
並行に Python コルーチンを起動 し、実行全体を管理する
ネットワーク IO と IPC を執り行う
subprocesses を管理する
キュー を使ってタスクを分散する
並列処理のコードを 同期 させる
これに加えて、 ライブラリやフレームワークの開発者 が次のことをするための 低レベル API があります:
ネットワーク通信 、 サブプロセス の実行、 OS シグナル の取り扱いなどのための非同期 API を提供する イベントループ の作成と管理を行う
Transport を使った効率的な protocol を実装します
コールバックを用いたライブラリと async/await 構文を使ったコードの 橋渡し
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'
利用可能な環境: WASI 以外。
このモジュールは WebAssembly では動作しないか、利用不可です。詳しくは、WebAssembly プラットフォーム を見てください。
リファレンス
ガイドとチュートリアル
注釈
asyncio のソースコードは Lib/asyncio/ にあります。