public static interface Schedulers.Factory
| Modifier and Type | Method and Description |
|---|---|
default Scheduler |
newBoundedElastic(int threadCap,
int queuedTaskCap,
ThreadFactory threadFactory,
int ttlSeconds)
Scheduler that dynamically creates a bounded number of ExecutorService-based
Workers, reusing them once the Workers have been shut down. |
default Scheduler |
newParallel(int parallelism,
ThreadFactory threadFactory)
Scheduler that hosts a fixed pool of workers and is suited for parallel
work. |
default Scheduler |
newSingle(ThreadFactory threadFactory)
Scheduler that hosts a single worker and is suited for non-blocking
work. |
default Scheduler |
newThreadPerTaskBoundedElastic(int threadCap,
int queuedTaskCap,
ThreadFactory threadFactory)
Scheduler that dynamically creates a bounded number of Workers. |
default Scheduler newBoundedElastic(int threadCap, int queuedTaskCap, ThreadFactory threadFactory, int ttlSeconds)
Scheduler that dynamically creates a bounded number of ExecutorService-based
Workers, reusing them once the Workers have been shut down. The underlying (user or daemon)
threads can be evicted if idle for more than ttlSeconds.
The maximum number of created thread pools is bounded by the provided threadCap.
threadCap - maximum number of underlying threads to createqueuedTaskCap - maximum number of tasks to enqueue when no more threads can be created. Can be Integer.MAX_VALUE for unbounded enqueueing.threadFactory - a ThreadFactory to use each thread initializationttlSeconds - Time-to-live for an idle Scheduler.WorkerScheduler that dynamically creates workers with an upper bound to
the number of backing threads, reuses threads and evict idle onesdefault Scheduler newThreadPerTaskBoundedElastic(int threadCap, int queuedTaskCap, ThreadFactory threadFactory)
Scheduler that dynamically creates a bounded number of Workers.
The maximum number of created thread pools is bounded by the provided threadCap.
The main difference between BoundedElasticScheduler and
BoundedElasticThreadPerTaskScheduler is that underlying machinery
allocates a new thread for every new task which is one of the requirements
for usage with VirtualThreads
Note: for now this scheduler is available only in Java 21+ runtime
threadCap - maximum number of underlying threads to createqueuedTaskCap - maximum number of tasks to enqueue when no more threads can be created. Can be Integer.MAX_VALUE for unbounded enqueueing.threadFactory - a ThreadFactory to use each thread initializationScheduler that dynamically creates workers with an upper bound to
the number of backing threadsdefault Scheduler newParallel(int parallelism, ThreadFactory threadFactory)
Scheduler that hosts a fixed pool of workers and is suited for parallel
work.parallelism - Number of pooled workers.threadFactory - a ThreadFactory to use for the fixed initialized
number of ThreadScheduler that hosts a fixed pool of workers and is
suited for parallel workdefault Scheduler newSingle(ThreadFactory threadFactory)
Scheduler that hosts a single worker and is suited for non-blocking
work.threadFactory - a ThreadFactory to use for the unique resource of
the SchedulerScheduler that hosts a single worker