是否可以在Java中迭代Collection parallel。我在Parallel.ForEach
- 命名空间
System.Threading.Tasks
的内容
答案 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