Скажем, я разветкил кучу нитей и хочу распечатать результаты выполнения от каждого до STDERR. Как я могу сделать это таким образом, чтобы выход сохранялся линейно-атомарным, т.е. Не перепутал вывод из разных потоков в той же выходной строке?
# run this a few times and you'll see the problem
threads = []
10.times do
threads << Thread.new do
puts "hello" * 40
end
end
threads.each {|t| t.join}