gpt4 book ai didi

multithreading - “Thread.sleep()”与“write()”一起使用时会产生一些奇怪的副作用

转载 作者:行者123 更新时间:2023-12-03 13:14:18 27 4
gpt4 key购买 nike

我正在尝试使用以下代码在Windows控制台中动态更改输出:

for(int i = 0;; i++,Thread.sleep(dur!("msecs")(200)))
write("\r",i);

但是您必须等待很长时间才能看到屏幕上的内容。即使更改为1毫秒,持续时间也足以将数字重写速度减慢到2-3秒。

输出更改如下(在某处):
23343
30948332
42048332

好像 write()函数的工作可以在进程的中间被中断。

如果我们将 write()更改为 writeln()sleep()函数将正常运行。

为什么会这样呢?

最佳答案

每次调用stdout.flush()后使用write。这是因为默认情况下写入是缓冲的,而writeln(与write不同)默认情况下会刷新输出。

关于multithreading - “Thread.sleep()”与“write()”一起使用时会产生一些奇怪的副作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23245750/

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