2016-01-08 5 views
1

Я изучаю темы в Ruby.Ruby: Thread не работает

Я создал поток, но он не работает. Как я могу это исправить?

puts 'start' 
Thread.new do 
    puts 'thread' 
    10.times { |i| puts i } 
end 

puts 'start 2' 

Выход:

старт
старт 2

ответ

3

Проблема состоит в том, что основной поток заканчивается без другого потока, выполняющего. Вы должны сделать основной поток ждать для того, чтобы закончить с помощью Thread#join:

puts 'start' 
Thread.new do 
    puts 'thread' 
    10.times { |i| puts i } 
end.join 

puts 'start 2' 
0

попробовать

puts 'start' 

t = Thread.new do 
    puts 'thread' 
    10.times { |i| puts i } 
end 

t.join 

puts 'start 2' 

или

puts 'start' 

Thread.new do 
    puts 'thread' 
    10.times { |i| puts i } 
end.join 

puts 'start 2'