为什么线程中的睡眠没有输出?

时间:2014-06-16 10:43:26

标签: ruby

我正在使用Ruby 2.0,Cygwin和Windows 8.以下程序不会产生任何输出;它将永远循环而不是puts时间。

hi = Thread.new do
  while true do
    puts Time.now # or call tick function
    sleep 1
  end
end
hi.join

我错过了什么吗?

我希望功能为:

  • 做点什么
  • 等待3-10秒
  • 再做一次等。

1 个答案:

答案 0 :(得分:1)

似乎您的输出已缓冲($stdout.sync默认为false)。要立即刷新所有输出,请使用以下命令启动脚本:

$stdout.sync = true