在Java中System.out和System.err之间的竞争
2022-09-02 13:41:36
请考虑以下 java 代码:
public class CMain {
public static void main(String[] args){
for (int i = 0; i < 10; i++) {
System.out.println("A");
System.err.println("B");
}
}
}
通过快速浏览代码,我们中的一些人可能会认为输出必须是As和B的打印。但是不是!它是10个A字符和10个B字符的随机出现。像这样:
为什么?以及它的解决方案是什么,以便As和B交替显示(A B A B A B ...)在我问这个问题之前,我检查了其他几个类似的问题的解决方案,并且没有为我的情况工作!我把其中一些带到了这里:
- Synchronization and System.out.println
- Java:同步标准输出和标准错误
- Java: System.out.println and System.err.println out order PS. 我正在使用 Eclipse 作为我的 IDE