An {@link ExecutorService} for running {@link ForkJoinTask}s. A {@code ForkJoinPool} provides the entry point for submissions from non-{@code ForkJoinTask} clients, as well as management and monitoring operations.
A thread managed by a {@link ForkJoinPool}, which executes {@link ForkJoinTask}s. This class is subclassable solely for the sake of adding functionality -- there are no overridable methods dealing with scheduling or execution. However, you can override initialization and termination methods surrounding the main task processing loop. If you do create such a subclass, you will also need to supply a custom {@link ForkJoinPool.ForkJoinWorkerThreadFactory} to {@linkplain ForkJoinPool#ForkJoinPool(int, ForkJoinWorkerThreadFactory, UncaughtExceptionHandler, bool, int, int, int, Predicate, long, TimeUnit) use it} in a {@code ForkJoinPool}.
A worker thread that has no permissions, is not a member of any user-defined ThreadGroupEx, uses the system class loader as thread context class loader, and erases all ThreadLocals after running each top-level task.
Queues supporting work-stealing as well as external task submission. See above for descriptions and algorithms.
A marker interface identifying asynchronous tasks produced by {@code async} methods. This may be useful for monitoring, debugging, and tracking asynchronous activities.
Factory for creating new {@link ForkJoinWorkerThread}s. A {@code ForkJoinWorkerThreadFactory} must be defined and used for {@code ForkJoinWorkerThread} subclasses that extend base functionality or initialize threads with different contexts.
Interface for extending managed parallelism for tasks running in {@link ForkJoinPool}s.