18.5. asyncio
— 非同期 I/O、イベントループ、コルーチンおよびタスク¶
バージョン 3.4 で追加.
ソースコード: Lib/asyncio/
注釈
asyncio パッケージは、暫定パッケージ として標準ライブラリに含まれています。コア開発者が必要と判断したときは、(モジュールの削除も含めた) 後方互換性が破壊される可能性があります。
このモジュールは、コルーチン、ソケットあるいはその他リソースを使用した多重 I/O、ネットワーククライアントあるいはサーバーの実行、およびその他関連するプリミティブを使用した、シングルスレッド処理を並行で実行するコードを作成するためのインフラストラクチャを提供します。ここではパッケージ内容の詳細ページの一覧を示しています:
さまざまなシステム固有の実装とプラグ可能な イベントループ;
TCP、UDP、SSL、サブプロセス、遅延呼び出しなどの実体サポート (一部はシステム依存);
concurrent.futures
モジュールの一つに類似するが、イベントループでの使用に適応したFuture
クラス;逐次処理の並行コードの作成を支援する、
yield from
(PEP 380) に基づいたコルーチンおよびタスク;Future
およびコルーチンのキャンセルのサポート;ブロッキング I/O 呼び出しを行うライブラリを絶対的かつ積極的に使う必要がある時に、スレッドプールに仕事を投げるためのインタフェース
非同期プログラミングは古典的な “逐次” プログラミングと比べるとより複雑です。非同期プログラミングで陥りやすい落とし穴の一覧とその回避方法について説明している Develop with asyncio を参照してください。開発の間は、よくある問題を検出するために デバッグモードを有効にしてください 。
目次:
- 18.5.1. 基底イベントループ
- 18.5.1.1. イベントループの実行
- 18.5.1.2. 呼び出し (call)
- 18.5.1.3. 遅延呼び出し
- 18.5.1.4. Futures
- 18.5.1.5. タスク
- 18.5.1.6. コネクションの作成
- 18.5.1.7. 待ち受けコネクションの作成
- 18.5.1.8. ファイル記述子の監視
- 18.5.1.9. 低水準のソケット操作
- 18.5.1.10. ホスト名の解決
- 18.5.1.11. パイプの接続
- 18.5.1.12. UNIX シグナル
- 18.5.1.13. 実行者
- 18.5.1.14. エラーハンドリング API
- 18.5.1.15. デバッグモード
- 18.5.1.16. サーバー
- 18.5.1.17. ハンドル
- 18.5.1.18. イベントループの例
- 18.5.2. イベントループ
- 18.5.3. タスクとコルーチン
- 18.5.4. トランスポートとプロトコル (コールバックベースの API)
- 18.5.5. ストリーム (コルーチンベースの API)
- 18.5.6. サブプロセス
- 18.5.7. 同期プリミティブ
- 18.5.8. キュー
- 18.5.9. asyncio での開発