stream() / parallelStream() methods

Brian Goetz brian.goetz at
Fri Feb 8 15:28:22 PST 2013

Depends how seriously you are counting.  Doug counts individual object 
creations and virtual invocations on the way to a parallel operation, 
because until you start forking, you're on the wrong side of Amdahl's 
law -- this is all "serial fraction" that happens before you can fork 
any work, which pushes your breakeven threshold further out.  So getting 
the setup path for parallel ops fast is valuable.

On 2/8/2013 6:25 PM, Kevin Bourrillion wrote:
> On Fri, Feb 8, 2013 at 3:24 PM, Brian Goetz <brian.goetz at
> <mailto:brian.goetz at>> wrote:
>         (Tangentially, I would really love to drop parallelStream() and let
>         people call stream().parallel(). But I haven't managed to scour the
>         archives to find if that argument's already suitably played out.)
>     Direct version is more performant, in that it requires less wrapping
>     (to turn a stream into a parallel stream, you have to first create
>     the sequential stream, then transfer ownership of its state into a
>     new Stream.)
> But really a lot of /work/ has already happened by then?
> --
> Kevin Bourrillion | Java Librarian | Google, Inc. |kevinb at
> <mailto:kevinb at>

More information about the lambda-libs-spec-observers mailing list