一般社団法人 全国個人事業主支援協会

COLUMN コラム

最近コルーチンの内部実装についての動画を見たため、内部実装について概要をまとめた。

一度内部実装を見ておくと理解が深まる!

———————————————————————————

  • コルーチンは コンパイル変換で状態マシン化 される

  • サスペンドは Continuation を保存してスレッドを解放

  • 再開は Dispatcher が適切なスレッドで実行

  • delay/I/O は イベント駆動で resume(busy-loop なし)

  • Job により 構造化並行性とキャンセル伝搬 を保証

  • キャンセルは 協調的(フラグ+例外)

  • Flow/Channel はこの基盤の上に構築された抽象

この組み合わせにより、Kotlin は 軽量・安全・予測可能 な非同期モデルを実現しています。
「軽量スレッド」という比喩よりも、“再開可能な関数+スケジューラ” と捉えるほうが、実装イメージに近いと言えるでしょう。

The following two tabs change content below.

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア