在 System.out.println 的多线程输出中交错
在多线程环境中,出现的问题是: System.out.println(String) 方法在多个线程并发调用时可以交错。
Java API文档没有提供有关 System.out 或 println 方法的线程安全性的明确信息。因此,我们不能这样假设。
可以想象,JVM 实现可能会利用 println 的线程安全函数,从而导致非交错输出。但是,在不同的 JVM 实现中无法保证此行为。
为了确保输出不交错,需要手动执行互斥:
public synchronized void safePrintln(String s) { System.out.println(s); }
请注意,仅此方法是不够的因为所有代码都必须使用它并避免直接调用 System.out.println(String).
以上是System.out.println() 输出可以在多线程 Java 中交错吗?的详细内容。更多信息请关注PHP中文网其他相关文章!