Вызов Thread.join блокирует текущий (основной) поток. Однако не вызывать результаты соединения во всех порожденных потоках, которые должны быть убиты при выходе основного потока. Как вы создаете постоянные дочерние потоки в Ruby, не блокируя основной поток?
Здесь типичное использование соединения.
for i in 1..100 do
puts "Creating thread #{i}"
t = Thread.new(i) do |j|
sleep 1
puts "Thread #{j} done"
end
t.join
end
puts "#{Thread.list.size} threads"
Это дает
Creating thread 1
Thread 1 done
Creating thread 2
Thread 2 done
...
1 threads
но я ищу, как это сделать
Creating thread 1
Creating thread 2
...
101 threads
Thread 1 done
Thread 2 done
...
Код дает тот же результат как в Ruby 1.8.7, так и в 1.9.2