我使用Eclipse。当我有这样的应用程序时:
write 20 times 'Hello World\n' to stdout
write 'ERROR\n' to stderr
write 5 times 'Hello World\n' to stdout
输出看起来很多时候都是这样的:
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
...
Hello World
Hello World
Hello World
ERROR
有没有办法同步这两个输出流?当然无需在出块20次后等待几毫秒Hello World
打印后等待几毫秒ERROR
.
不管你信不信,冲水不是解决办法......
如果流导致“底层操作系统提供的抽象”(例如磁盘驱动器或控制台),则剩余字节“被传递到操作系统进行写入;它不保证它们实际上被写入......”(看输出流文档)。这里的关键是,如果操作系统选择的话,它可以以不同的顺序处理来自不同流的刷新。
我刚刚在我的程序中发生了这种情况。我在两条正常消息之间出现一条错误消息,两条正常消息都在错误消息出现之前刷新。
所以问题仍然存在,有没有内置的方法来同步两个流?还是我们必须手动处理?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)