【发布时间】:2015-10-09 18:18:55
【问题描述】:
在我的程序的最开始,我打印出这两行:
Dyvil 1.0.0 的 Dyvil 编译器 1.0.0
从 'config.txt' 加载配置文件
第一个打印在System.err,而第二个打印在System.out。两个println 调用都发生在main 方法中按上述顺序。但是,似乎有时会交换消息:
从 'config.txt' 加载配置文件
Dyvil 1.0.0 的 Dyvil 编译器 1.0.0
在 Eclipse 调试模式或从 Gradle 构建脚本运行程序时会发生这种情况(我没有使用 java 命令对其进行测试)。请注意,绝对不涉及多线程,所以不要告诉我疯狂的定义。
这是怎么回事?
【问题讨论】:
-
可能取决于何时刷新输出缓冲区。
标签: java multithreading console synchronization