並行流

注意: 在決定使用哪個 Stream 之前,請先看看 ParallelStream 與 Sequential Stream 的行為

如果要同時執行 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 無關緊要。

績效影響

如果涉及網路,並行 Streams 可能會降低應用程式的整體效能,因為所有並行的 Streams 都使用公共的 fork-join 執行緒池來為網路服務。

另一方面,並​​行 Streams 可能會在許多其他情況下顯著提高效能,具體取決於此刻正在執行的 CPU 中可用核心的數量。