Ruby 为什么线程中的睡眠没有puts输出?
我正在使用Ruby 2.0、Cygwin和Windows 8。以下程序不产生任何输出;它将永远循环,而不会将时间置于Ruby 为什么线程中的睡眠没有puts输出?,ruby,Ruby,我正在使用Ruby 2.0、Cygwin和Windows 8。以下程序不产生任何输出;它将永远循环,而不会将时间置于位置 hi = Thread.new do while true do puts Time.now # or call tick function sleep 1 end end hi.join 我错过什么了吗 我希望功能是: 做点什么 等待3-10秒 再做一次等等 似乎您的输出已被缓冲(默认为false)。要立即刷新所有输出,请使用以下命令启动脚本:
位置
hi = Thread.new do
while true do
puts Time.now # or call tick function
sleep 1
end
end
hi.join
我错过什么了吗
我希望功能是:
- 做点什么
- 等待3-10秒
- 再做一次等等
似乎您的输出已被缓冲(默认为false
)。要立即刷新所有输出,请使用以下命令启动脚本:
$stdout.sync = true
我知道我没有发疯,这在我的Ubuntu devbox上运行得非常好!试试$stdout.sync=true
@Stefan奇妙的Stefan!谢谢你知道为什么吗?如果您回答下面的问题,我将给您正确的答案:)您还可以使用“p”而不是“put”从线程内部返回输出。