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引数を出力してから改行を出力することにより、内部的に機能します。場合によっては、2 つの操作の間でスレッドが中断され、このような動作が発生することがあります。代わりに次のように言うこともできます:

 print "This is a line.\n"

...これは、改行を含む文字列全体を 1 回の操作で書き込みます。

于 2012-09-09T03:10:58.940 に答える