我希望解析多个文件以提取所需的数据,然后将输出写入XML文件。我已经使用Callable Interface实现了这一点。我的同事让我使用Java 8特性,它可以轻松地完成这项工作。我真搞不懂我现在该用哪一种。
list.parallelStream().forEach(a -> {
System.out.println(a);
});发布于 2015-05-08 09:21:51
只有当您有独立的任务要处理时,才能使用并发或并行流。当您不这样做的时候,一个很好的例子是您锁定在共享资源上的内容。
// 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实现客户端请求的工作池可能更简单。
https://stackoverflow.com/questions/30119366
复制相似问题