Package akka.dispatch.forkjoin
Preview versions of classes targeted for Java 7. Includes a
fine-grained parallel computation framework: ForkJoinTasks and
their related support classes provide a very efficient basis for
obtaining platform-independent parallel speed-ups of
computation-intensive operations. They are not a full substitute
for the kinds of arbitrary processing supported by Executors or
Threads. However, when applicable, they typically provide
significantly greater performance on multiprocessor platforms.
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.
-
Interface Summary Interface Description ForkJoinPool.ForkJoinWorkerThreadFactory Factory for creating newForkJoinWorkerThread
s.ForkJoinPool.ManagedBlocker Interface for extending managed parallelism for tasks running inForkJoinPool
s.TransferQueue<E> ABlockingQueue
in which producers may wait for consumers to receive elements. -
Class Summary Class Description ForkJoinPool AnExecutorService
for runningForkJoinTask
s.ForkJoinTask<V> Abstract base class for tasks that run within aForkJoinPool
.ForkJoinWorkerThread A thread managed by aForkJoinPool
, which executesForkJoinTask
s.LinkedTransferQueue<E> An unboundedTransferQueue
based on linked nodes.RecursiveAction A recursive resultlessForkJoinTask
.RecursiveTask<V> A recursive result-bearingForkJoinTask
.ThreadLocalRandom A random number generator isolated to the current thread.