参见英文答案 >
Is multi-thread output from System.out.println interleaved 4个
System.out返回“标准”输出流 – 一个PrintStream. PrintStream的javadoc告诉我关于线程安全的一切,但是查看OpenJDK的源代码并且OracleJDK告诉我println是同步的.
/**
* Prints a String and then terminate the line. This method behaves as
* though it invokes {@link #print(String)}
and then
* {@link #println()}
.
*
* @param x The String
to be printed.
*/
public void println(String x) {
synchronized (this) {
print(x);
newLine();
}
}
这非常适合我的经验:调用System.out.println()从不同的线程调用时从不创建’混合’输出.
所以我的问题:
>我可以依赖这种行为(使用不同的JVM)吗?
>我是否遗漏了一些描述此行为的文档?