こんにちは、なかむら(う)です。

At Oct.01,2002 19:16:52, <rio-t / presen.to> wrote in
    '[ruby-list:36058] Windows で Thread'
> Windows上でThreadの時分割がうまくいかないのは、そういうもの
> なんでしょうか?
(中略)
> という具合に、各スレッドが並行動作せずに順番に処理されてしま
> います。
> ループ中にsleep(1)などを加えれば、まともに動くのですが。

Windows上じゃなくても同じ結果になります。
RubyのThreadはそういうものだと思いますです。

http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=Thread
によると、

  Ruby のスレッドスケジューリングは優先順位付のラウンドロビン
  です。一定時間毎、あるいは実行中のスレッドが権利を放棄したタ
  イミングでスケジューリングが行われ、その時点で実行可能なスレ
  ッドのうち最も優先順位が高いものにコンテキストが移ります。

となっています。
今回の例だと、生成された各々のスレッドが短いので、各スレッドは
規定時間を消費する前に終了してしまっています。
ループ回数を十分大きくすれば、ちゃんと実行がスイッチされてるこ
とが確認できると思います。


それでは。
-- 
U.Nakamura <usa / osb.att.ne.jp>