注意:在决定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中可用内核的数量。