コルーチン
一方、マルチスレッドの場合はプログラマがスレッド間の同期や排他制御を行わなければならないが、その結果スレッドが実行を続けられなくなった場合は別のスレッドを実行するために暗黙的にコルーチンを呼び出す。この点では、マルチスレッドはコルーチンの抽象度をより高めた応用と解釈することができる。
言語仕様以外の例では、マルチタスクOSやユーザスレッドにおけるコンテキストスイッチがコルーチンとなる。この点では、上記の問題は「コルーチンを言語仕様とOSやスレッドライブラリのどちらに持たせるか」とも解釈できる。この場合でもコルーチンをスレッドやタスクのスリープのために明示的に呼び出すだけでなく、割り込みや例外処理の結果暗黙的に実行する場合の両方がある。
コルーチンという名称は、メルヴィン・コンウェイの1963年の論文に最初の記述がある。