gpt4 book ai didi

ruby - STDOUT.sync = true 是什么意思?

转载 作者:数据小太阳 更新时间:2023-10-29 06:29:41 25 4
gpt4 key购买 nike

我正在阅读 Ruby 中的 god 进程监控框架的源代码,发现了这个 STDOUT.sync = true。我以前从未见过这样的事情。

请解释它的作用,这一行的意义何在?

提前致谢。

最佳答案

通常 puts 不会立即写入 STDOUT,而是在内部缓冲字符串并将输出写入更大的 block 。这样做是因为 IO 操作很慢,通常避免将每个字符立即写入控制台更有意义。

这种行为在某些情况下会导致问题。假设您想构建一个进度条(运行一个循环,在大量计算之间输出单个点)。缓冲的结果可能是一段时间没有任何输出,然后突然一次打印多个点。

要避免这种行为,而是立即写入 STDOUT,您可以像这样将 STDOUT 设置为同步模式:

STDOUT.sync = true

来自docs :

When sync mode is true, all output is immediately flushed to the underlying operating system and is not buffered internally.

关于ruby - STDOUT.sync = true 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29998728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com