我正在运行一个线程,它做了几件事。
1.它从API获取一个浮点数
1.将该数字追加到文件中
1.将该数字打印到命令终端
1.重复
验证码:
price_file = File.open(price_file, "w+")
$time = Thread.new {
while true
price = Api.new.api(nil)
price_file << price
price_file << " "
puts price
sleep(seconds)
end
}
价格或数字只有在我终止循环或程序后才出现在文件中。
我希望能够运行一些功能的数字被添加到文件中,而程序仍在运行。
1条答案
按热度按时间n6lpvg4x1#
Ruby通常不会立即将内容写入控制台的文件或字符串,而是缓冲输出并将输出写入块。
当您需要立即输出并且不想等待时,则有两个选项:
price_file.sync = true
。当IO.sync=
设置为true
时,所有输出都会立即刷新到底层操作系统,而不会在内部进行缓冲。