asyncio

  • async/await 構文を利用して並行処理を行う
  • シングルスレッドで動作する並行処理のためのライブラリ

コルーチン定義関数(Coroutine function definition)

(ジェネレータベースの)コルーチン(yield)

  • 単純な関数呼び出しによるサブルーチンとは異なり、呼び出し元と呼び出し先を行ったり来たりするような関係性のルーチン
  • ジェネレータを利用してコルーチンを実装する(yield)
  • 『コルーチンは処理を中断した後、続きから処理を再開できる』= ジェネレータは処理を中断・再開できるので、コルーチンであると言える
  • send 呼び出しもとからデータ可能

native coroutine(async)

  • async の付いている関数定義は、generator と同じように、呼び出しをしても直ちに実行はされない関数
  • await で実行終了を待つ

非同期ジェネレータ(AsyncGenerator)

  • async generator
  • 通常のジェネレータと違って非同期ジェネレータはジェネレータ関数自体の戻り値を返すことはできません
  • asend : 非同期ジェネレータでも呼び出し元から、ジェネレータ関数に値を通知することができます

資料