Coroutine
コルーチンとは、一時停止と再開が可能な関数であり、OS のスケジューリングなしに協調的に切り替わり、スレッドより軽量である。
目的
同期処理風の構文で非同期コードを記述し、コールバックや Promise より直感的にする。
メカニズム
コルーチンは yield や await で一時停止して制御を呼び出し側へ返し、停止地点から再開する。OS のスレッド切替オーバーヘッドがないため、単一スレッドで数百万のコルーチンを実行できる。Python の async/await、Go の goroutine、JS の async/await が代表例である。
ユースケース
- 非同期プログラミング
- スケーラブルな並行処理
- 軽量なスケジューリング