加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 21:43:53 所属栏目:百科 来源:网络整理
导读:我正在读取上帝的源代码 Ruby中的一个进程监视框架,并发现这个STDOUT.sync = true.我从来没有见过这样的东西.请解释一下这一行呢? 提前致谢. 解决方法 通常,put不会立即写入STDOUT,而是内部缓冲字符串,并将输出写入更大的块.这是因为IO操作较慢,通常避免将
我正在读取上帝的源代码 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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读