在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中文網其他相關文章!