Ruby 1.9以降から登場したFiberを用いると「ある処理を途中まで実行して、その後任意のタイミングで、前回の続きから処理を行う」というような処理の流れを扱うことができます。
『改訂2版 パーフェクトRuby』(P. 224)