Я изучаю темы в Ruby.Ruby: Thread не работает
Я создал поток, но он не работает. Как я могу это исправить?
puts 'start'
Thread.new do
puts 'thread'
10.times { |i| puts i }
end
puts 'start 2'
Выход:
старт
старт 2
Я изучаю темы в Ruby.Ruby: Thread не работает
Я создал поток, но он не работает. Как я могу это исправить?
puts 'start'
Thread.new do
puts 'thread'
10.times { |i| puts i }
end
puts 'start 2'
Выход:
старт
старт 2
Проблема состоит в том, что основной поток заканчивается без другого потока, выполняющего. Вы должны сделать основной поток ждать для того, чтобы закончить с помощью Thread#join
:
puts 'start'
Thread.new do
puts 'thread'
10.times { |i| puts i }
end.join
puts 'start 2'
попробовать
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'