如何在java中并行迭代一个集合?

时间:2015-10-28 11:49:48

标签: java parallel-processing

是否可以在Java中迭代Collection parallel。我在Parallel.ForEach - 命名空间

中寻找类似c#System.Threading.Tasks的内容

2 个答案:

答案 0 :(得分:1)

假设您使用的是Java 8,则应使用streams。如果您不使用Java 8,那么就没有相应的烘焙功能。

sandwichCollection.parallelStream().forEach((sandwich) -> {
    sandwich.eat();
});

答案 1 :(得分:1)

Stream中的Java 1.8 API在设计时考虑了parallelism,因此您可以将任何Stream转换为并行流。例如:

 Stream.of(1,2,3,4,5,6,7).parallel().forEach(System.out::println);

事实上,每个Stream都可以转换为平行的

Stream<Integer> parallel = stream.parallel();

Collection提供了一种返回parallelStream

的方法
Stream<Integer> parallel = Arrays.asList(1,2,3).parallelStream();

现在,这并不意味着每个操作都可以高效并行化,这取决于源集合的性质和您正在执行的任务。 Check this out