asyncioとは¶
async/await 構文を使い並行処理のコードを書くためのライブラリ
非同期フレームワークの基盤
ネットワークとウェブサーバ
データベース接続ライブラリ
分散タスクキュー
IOバウンドや高レベルの構造化されたネットワークコードに適している
高レベルAPI¶
並行にPythonコルーチンを起動し、実行全体を管理する
ネットワークIOとIPCを執り行う
subprocessesを管理する
キューを使ってタスクを分散する
並列処理のコードを同期させる
低レベルAPI¶
非同期APIを提供するイベントループの作成と管理
ネットワーク通信
サブプロセスの実行
OSシグナル
Transportを使った効率的なprotocolを実装
コールバックを用いたライブラリとasync/await構文を使ったコードの橋渡し
コルーチン¶
サブルーチンのより一般的な形式
サブルーチンには決められた地点から入り、別の決められた地点から出る
多くの様々な地点から入る、出る、再開できる
async def 文で実装できる
実態はジェネレータ
Task¶
コルーチンを平行にスケジュール
asyncio.create_task
関数でコルーチンをTaskにラップできる
awaitableオブジェクト¶
await式の中で使えるオブジェクト
多くのasyncio APIはawaitableオブジェクトを受け取るように設計されている
3つの種類がある
コルーチン
Task
Future