18.5. asyncio
— 非同期 I/O、イベントループ、コルーチンおよびタスク¶
バージョン 3.4 で追加.
ソースコード: Lib/asyncio/
このモジュールは、コルーチン、ソケットあるいはその他リソースを使用した多重 I/O、ネットワーククライアントあるいはサーバーの実行、およびその他関連するプリミティブを使用した、シングルスレッド処理を並行で実行するコードを作成するためのインフラストラクチャを提供します。ここではパッケージ内容の詳細ページの一覧を示しています:
- さまざまなシステム固有の実装とプラグ可能な イベントループ;
- トランスポート および プロトコル の抽象化 (Twisted でのそれらに類似);
- TCP、UDP、SSL、サブプロセス、遅延呼び出しなどの実体サポート (一部はシステム依存);
concurrent.futures
モジュールの一つに類似するが、イベントループでの使用に適応したFuture
クラス;- 逐次処理の並行コードの作成を支援する、
yield from
(PEP 380) に基づいたコルーチンおよびタスク; Future
およびコルーチンのキャンセルのサポート;threading
モジュール内のそれに類似した、シングルスレッド内のコルーチン間で使用する 同期化プリミティブ;- ブロッキング 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. Future
- 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. Transports and protocols (callback based API)
- 18.5.5. ストリーム (コルーチンベースの API)
- 18.5.6. サブプロセス
- 18.5.7. 同期プリミティブ
- 18.5.8. キュー
- 18.5.9. asyncio での開発