我想解析多个文件以提取所需数据,然后将输出写入XML
文件。我使用Callable Interface
来实现这一点。我的同事让我使用Java 8
功能轻松完成这项工作。我真的很困惑,我现在应该使用哪一个。
list.parallelStream().forEach(a -> {
System.out.println(a);
});
答案 0 :(得分:4)
如果您要处理独立任务,则使用并发或并行流只会有所帮助。如果你不这样做的一个很好的例子就是锁定共享资源,例如
// makes no sense to use parallel here.
list.parallelStream().forEach(a -> {
// locks System.out so only one thread at a time can do any work.
System.out.println(a);
});
但是,作为一般性问题,我会使用parallelStream来处理数据,而不是直接使用并发库,因为;
恕我直言,鉴于使用并行编码的可能性很低,parallelStream
的最佳功能并不是添加的简单程度,而是取出它是多么简单。
如果您的临时工作很难建模为数据流,那么并发库会更好。例如使用ExecutorService实现客户端请求的工作池可能更简单。