>>>>> "J" == JB  <temuphaey0 / jetable.net> writes:

J> for i in 1..3
J>   threads << Thread.new(i) { |i|
[...]
J> I expected to see: 123
J> but I got : 333

J> Is it a bug? or is it normal?

 it's normal : the 3 threads share the same variable `i' and this is the
 varible in `for'

J> Upon to me the 'i' variable of the 'print i'  should be '|i|' (which is the
J> last declaration of 'i') and not the 'i' in 'for i in 1..3' (which value is
J> '3' and the end of the loop).

 wait for ruby 2


Guy Decoux