Start here. This is the direct spoken answer to practice first.
Overview
Parallel streams can help a suitable CPU-bound reduction, but overhead and shared runtime resources make them a deliberate choice.
A parallel stream splits work into subproblems, processes them concurrently, and combines the results. It is most promising for a large, easily splittable, CPU-bound operation with independent elements and an efficient associative reduction. It can be slower for small inputs, cheap operations, poorly splittable sources, ordered pipelines, blocking I/O, or expensive combine steps. I use it only after measuring the representative workload.