こんにちは、高石です。

Windows上でThreadの時分割がうまくいかないのは、そういうもの
なんでしょうか?

% cat hoge.rb

a = b = c = 0
t = []

t << Thread.new do
  (1..5).each do
    a += 1
    puts a
  end
end

t << Thread.new do
  (1..5).each do
    b += 10
    puts b
  end
end

t << Thread.new do
  (1..5).each do
    c += 100
    puts c
  end
end

t.each do |x|
  x.join
end

% ruby -v hoge.rb
ruby 1.6.7 (2002-03-01) [i686-cygwin]
1
2
3
4
5
10
20
30
40
50
100
200
300
400
500

という具合に、各スレッドが並行動作せずに順番に処理されてしま
います。
ループ中にsleep(1)などを加えれば、まともに動くのですが。
/--------------------------------------------------------/
  高石 勇人 < rio-t / presen.to >
  PGP Key(RSA): http://rio-t.presen.to/pgp/mykey.asc
         (DSS): http://rio-t.presen.to/pgp/mykey-dss.asc
/--------------------------------------------------------/