Java Reference
In-Depth Information
.
mapToInt
(
i
->
i
)
.
sum
();
}
Under the hood, parallel streams back onto the fork/join framework. The
fork
stage recurs-
ively splits up a problem. Then each chunk is operated upon in parallel. Finally, the
join
stage merges the results back together.
Figure 6-2
shows how this might apply to
Example 6-6
.
Figure 6-2. Decomposing and merging using fork/join
Let's assume that the streams framework is splitting up our work to operate in parallel on a
four-core machine:
1. Our data source is decomposed into four chunks of elements.
2. We perform leaf computation work in parallel on each thread in
Example 6-6
.
This in-
volves mapping each
Integer
to an
int
and also summing a quarter of the values in
each thread. Ideally, we want to spend as much of our time as possible in leaf compu-
tation work because it's the perfect case for parallelism.
any kind of
reduce
,
collect
, or terminal operation.