【发布时间】:2013-06-22 15:27:54
【问题描述】:
当 Java 程序调用 System.out.println() 或 Scala 程序调用 println() 时,线程会阻塞吗?
我正在编写一个包含大量子任务的 Scala 程序。每个子任务都在 Future 中执行。建议actors和futures内部的代码不要阻塞,这样后续的任务也不必等待。但我非常想在控制台上打印。
如果是阻塞操作:我可以做些什么来优化性能?
- 我是否应该为控制台输出使用专用线程,以便该线程是唯一阻塞的线程?
- 还有其他建议吗?
当然我可以尝试减少输出量,或者在StringBuilder中收集一些输出,然后批量打印出来,这样可以减少输出操作的次数。
【问题讨论】:
标签: java multithreading scala blocking nonblocking