Java并行流

示例

注意:在决定Stream使用哪个之前,请先查看ParallelStream与顺序流的行为。

当您要同时执行Stream操作时,可以使用以下两种方法之一。

List<String> data = Arrays.asList("One", "Two", "Three", "Four", "Five");
Stream<String> aParallelStream = data.stream().parallel();

要么:

Stream<String> aParallelStream = data.parallelStream();

要执行为并行流定义的操作,请调用终端操作符:

aParallelStream.forEach(System.out::println);

(可能的)并行输出Stream:


四个


由于所有元素都是并行处理的,因此顺序可能会更改(这可能会使其更快)。使用parallelStream时,次序并不重要。

性能影响

在涉及网络的情况下,并行程序Stream可能会降低应用程序的整体性能,因为所有并行程序都Stream为网络使用公共的fork-join线程池。

另一方面,Stream在许多其他情况下,并行s可以显着提高性能,具体取决于当前正在运行的CPU中可用内核的数量。