Вызов 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