ruby – 什么STDOUT.sync =真的意思?

前端之家收集整理的这篇文章主要介绍了ruby – 什么STDOUT.sync =真的意思?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在读取上帝的源代码 Ruby中的一个进程监视框架,并发现这个STDOUT.sync = true.我从来没有见过这样的东西.请解释一下这一行呢?

提前致谢.

解决方法

通常,put不会立即写入STDOUT,而是内部缓冲字符串,并将输出写入更大的块.这是因为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相关文章