【こるーちん】
コルーチン とは?
最終更新:
💡 状態を保ち、止めた続きから再開する
実行の途中で状態を保って中断し、後から続きへ戻れる仕組み。中断・再開の操作や実行するスレッドは言語やライブラリによって異なり、非同期処理などに使われる。
📌 このページのポイント
普通の関数をもう一度呼ぶのとは違うの?
関数が終了した後に呼び直すと、新しい呼び出しになるよ。コルーチンは、中断した位置や変数の状態を保って続きから再開できる。Luaではyieldで中断し、同じコルーチンをresumeして続けるんだ。
どういう場面で役立つの?
async/awaitなら全部同じ仕組みなの?
言語ごとに扱いが違うよ。Pythonでは、yieldを含まないasync defがコルーチン関数になる。呼び出すだけでは実行されず、awaitやasyncio.run、タスクの作成などで動かす。キーワードが同じでも、他の言語へそのまま当てはめないようにしよう。
スレッドは使わないの?
ジェネレータもコルーチンなの?
まとめ:ざっくりこれだけ覚えればOK!
「コルーチン」って出てきたら「状態を保って中断・再開できる処理」と思えばだいたいOK!
📖 おまけ:英語の意味
「Coroutine」 = 協調ルーチン
💬 Co(協調)+ Routine(手続き)で、お互いに処理を譲り合いながら動くイメージだよ