Я пишу рубиновую программу, которая будет использовать потоки для выполнения некоторой работы. Выполняемая работа требует не детерминированного количества времени для завершения и может варьироваться от 5 до 45 + секунд. Ниже приведен примерный пример того, что код потоковая выглядит следующим образом:Что происходит, когда вы не присоединяетесь к своим темам?
loop do # Program loop
items = get_items
threads = []
for item in items
threads << Thread.new(item) do |i|
# do work on i
end
threads.each { |t| t.join } # What happens if this isn't there?
end
end
Мое предпочтение было бы пропустить присоединение нити и не блокировать все приложение. Однако я не знаю, каковы долгосрочные последствия этого, особенно потому, что код запускается снова почти сразу. Это что-то безопасное? Или есть лучший способ порождать поток, работать он и очищать, когда он закончен, все в бесконечном цикле?
Нити не нужно сообщать обратно в основной программе. –