0

以下代码抛出消息而不用换行符放置它们。

threads = []
counter = 1000
counter.times do
     threads << Thread.new do 
        puts "This is a line."
        sleep 1
     end
end

threads.each {|t| t.join}

结果是

This is a line. This is a line

This is a line.
This is a line.

and so on...

无论如何以更整洁的方式打印结果行?

4

1 回答 1

2

puts通过打印它的参数在内部工作,然后打印一个换行符。有时,线程会在两个操作之间中断,从而导致您看到的行为。你可以改为说:

 print "This is a line.\n"

...这将在单个操作中写入整个字符串 - 包括换行符。

于 2012-09-09T03:10:58.940 回答