最佳答案
使用Java 8和lambdas,可以很容易地将集合作为流迭代,也可以很容易地使用并行流。的文档中的两个例子,第二个使用parallelStream:
myShapesCollection.stream()
.filter(e -> e.getColor() == Color.RED)
.forEach(e -> System.out.println(e.getName()));
myShapesCollection.parallelStream() // <-- This one uses parallel
.filter(e -> e.getColor() == Color.RED)
.forEach(e -> System.out.println(e.getName()));
只要我不关心顺序,使用并行运算总是有益的吗?有人会认为将工作分配到更多的核心上更快。
还有其他考虑吗?什么时候应该使用平行流,什么时候应该使用非平行流?
(问这个问题是为了引发关于如何以及何时使用并行流的讨论,而不是因为我认为总是使用它们是一个好主意。)