2010/3/23 Yusuke Yamasaki <y-yamasaki / salvus.jp>:
> スレッドで並列実行される関数内でRuby標準添付のLoggerを呼ぶと、
> sleepを入れたのと似たような効果があり、関数の途中で、別のスレッドに実行権が移る
> ことがある、というのは正しいでしょうか?

ruby 1.8のスレッドスケジューリングは10ms毎に(可能なら)次のスレッドをスケジュールします。
ので、何かアトミックな処理をしたい場合には、なんらかの工夫が要ります。
現在のコードで、Loggerを使わないとスレッド切り替えが起こらないように見える、
というのは、偶然もしくは別の理由によるものだと思います。