Factory for creating new
Interface for extending managed parallelism for tasks running in
Abstract base class for tasks that run within a
A recursive resultless
A recursive result-bearing
A random number generator isolated to the current thread.
Candidates for fork/join processing mainly include those that can be expressed using parallel divide-and-conquer techniques: To solve a problem, break it in two (or more) parts, and then solve those parts in parallel, continuing on in this way until the problem is too small to be broken up, so is solved directly. The underlying work-stealing framework makes subtasks available to other threads (normally one per CPU), that help complete the tasks. In general, the most efficient ForkJoinTasks are those that directly implement this algorithmic design pattern.