18.5. asyncio —非同期I / O、イベントループ、コルーチン、タスク—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/3.6/library/asyncio
移動先:案内検索

18.5。 asyncio —非同期I / O、イベントループ、コルーチン、およびタスク

バージョン3.4の新機能。


ソースコード: :source: `Lib / asyncio /`



このモジュールは、コルーチンを使用してシングルスレッドの並行コードを記述し、ソケットやその他のリソースを介してI / Oアクセスを多重化し、ネットワーククライアントとサーバー、およびその他の関連するプリミティブを実行するためのインフラストラクチャを提供します。 パッケージの内容のより詳細なリストは次のとおりです。

  • さまざまなシステム固有の実装を備えたプラグ可能なイベントループ
  • transport および protocol の抽象化( Twisted の抽象化と同様)。
  • TCP、UDP、SSL、サブプロセスパイプ、遅延呼び出しなどの具体的なサポート(一部はシステムに依存する場合があります)。
  • Future クラス。 concurrent.futures モジュールのクラスを模倣しますが、イベントループでの使用に適合しています。
  • yield from PEP 380 )に基づくコルーチンとタスク。並行コードを順次作成するのに役立ちます。
  • Future とコルーチンのキャンセルサポート。
  • 同期プリミティブは、スレッドモジュールのコルーチンを模倣して、単一スレッドのコルーチン間で使用します。
  • スレッドプールに作業を渡すためのインターフェイス。絶対に、I / O呼び出しをブロックするライブラリを積極的に使用する必要がある場合に使用します。

非同期プログラミングは、従来の「シーケンシャル」プログラミングよりも複雑です。一般的なトラップを一覧表示し、それらを回避する方法を説明している Develop with asyncio ページを参照してください。 開発中にデバッグモードを有効にして、一般的な問題を検出します。

目次:


も参照してください

asyncio モジュールは、 PEP 3156 で設計されました。 トランスポートとプロトコルに関する動機付けの入門書については、 PEP 3153 を参照してください。