Stream parallel() / sequential() question.

Paul Sandoz paul.sandoz at
Thu Apr 4 06:37:17 PDT 2013

In the tip parallel()/sequential() flip a bit to say how the complete pipeline is evaluated when the terminal operation commences.

Previously that was not the case: sequential() was a barrier if the upstream was parallel; and parallel() wrapped if the upstream was sequential.

On Apr 4, 2013, at 3:21 PM, Boaz Nahum <boaznahum at> wrote:

> When I invoked parallel() or sequential() how backward it goes ?
> Let me explain, I wrote a simple Consumer that report how many different
> threads used to run it:
> source.
>            parallel().peek(new ThreadReporter("Segement 1 parallel")).
>            sequential().peek(new ThreadReporter("Segement 2 sequential")).
>            parallel().peek(new ThreadReporter("Segement 3 parallel")).
>            sequential().peek(new ThreadReporter("Segement 4
> sequential")).forEach((t) -> {});

The complete pipeline will be evaluated sequentially since the final sequential() wins. Assuming the source stream is sequential the above would be equivalent to:



More information about the lambda-dev mailing list