當一個Java程序調用System.out.println()或者一個Scala程序調用println()做線程塊嗎?控制檯是否輸出阻止操作?
我正在寫一個Scala程序,其中包含大量的子任務。每個子任務都在Future中執行。建議演員和期貨內部的代碼不要阻塞,以便後續任務不必等待。但是我想在控制檯上進行非常多的打印。
如果是阻塞操作:我可以做些什麼來優化性能?
- 我是否應該使用專用線程進行控制檯輸出,以便線程是唯一阻止的線程?
- 其他建議?
當然我可以嘗試在StringBuilder中減少輸出量或收集一些輸出並將它一起打印在一起,這樣可以減少輸出操作的次數。
*日誌寫入到不同的文件系統。*你的意思是不同的物理驅動器?或者如果你的意思是說一個文件系統比另一個文件系統更適合這樣的任務(例如ext *和btrfs),你能否透露這些名字? –
不,我的意思是IO鏈,而不是不同的FS類型@ om-nom-nom。偉大的用戶名稱btw。 :-) – Gray
這個。這是一個格式良好且有用的答案。 – Andy