Class UnlimitedPipelineExecutor<O>
- java.lang.Object
-
- java.util.concurrent.AbstractExecutorService
-
- java.util.concurrent.ThreadPoolExecutor
-
- de.aristaflow.adept2.util.threading.AFThreadPoolExecutor
-
- de.aristaflow.adept2.util.threading.CachedThreadPoolExecutor
-
- de.aristaflow.adept2.util.threading.executor.AbstractObjectSpecificExecutor<O,P,Queue<Runnable>>
-
- de.aristaflow.adept2.util.threading.executor.AbstractPipeliningExecutor<O,O>
-
- de.aristaflow.adept2.util.threading.executor.UnlimitedPipelineExecutor<O>
-
- Type Parameters:
O
- The type of object for which work is registered and which identifies a pipeline.
- All Implemented Interfaces:
Executor
,ExecutorService
public class UnlimitedPipelineExecutor<O> extends AbstractPipeliningExecutor<O,O>
A pipeline executor that has a separate pipeline for each registered object and therefore also no upper limit concerning the amount of pipelines as well as the amount of threads.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class java.util.concurrent.ThreadPoolExecutor
ThreadPoolExecutor.AbortPolicy, ThreadPoolExecutor.CallerRunsPolicy, ThreadPoolExecutor.DiscardOldestPolicy, ThreadPoolExecutor.DiscardPolicy
-
-
Field Summary
-
Fields inherited from class de.aristaflow.adept2.util.threading.executor.AbstractObjectSpecificExecutor
abortCount, flushPending, logger, objects, shutdownPending
-
Fields inherited from class de.aristaflow.adept2.util.threading.CachedThreadPoolExecutor
fullSize, realCoreSize, realMaxSize, workSize
-
Fields inherited from class de.aristaflow.adept2.util.threading.AFThreadPoolExecutor
activeThreads, completedTasks, HYSTERESIS, submittedTasks
-
-
Constructor Summary
Constructors Constructor Description UnlimitedPipelineExecutor(int maxPoolSize, Adept2ThreadFactory threadFactory)
Creates a new thread pool executor with one pipeline per registered object and the designated maximum amount of threads.UnlimitedPipelineExecutor(Adept2ThreadFactory threadFactory)
Deprecated, for removal: This API element is subject to removal in a future version.UseUnlimitedPipelineExecutor(int, Adept2ThreadFactory)
instead.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected O
getIndexObjectFor(O object)
Gets the object used for managing and executing runnables within this executor.-
Methods inherited from class de.aristaflow.adept2.util.threading.executor.AbstractPipeliningExecutor
addRunnable, cancelAndFlush, clearAbortedPendingWork, createPipelineRunnable, executeShutdown, getOutstandingRunnables
-
Methods inherited from class de.aristaflow.adept2.util.threading.executor.AbstractObjectSpecificExecutor
execute, flushAndExecute, flushAndExecuteUnchecked, isShutdown, restart, restartPendingWork, shutdown, shutdownNow, shutdownRunnableRun, submit, submit, submitAndFlush
-
Methods inherited from class de.aristaflow.adept2.util.threading.CachedThreadPoolExecutor
afterExecute, execute
-
Methods inherited from class de.aristaflow.adept2.util.threading.AFThreadPoolExecutor
beforeExecute, logPoolStatistics, newTaskFor, newTaskFor, recalculateLogLimits, setCorePoolSize, setLogExecuteCallStack, setMaximumPoolSize, updateQueueLimit
-
Methods inherited from class java.util.concurrent.ThreadPoolExecutor
allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getQueue, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setKeepAliveTime, setRejectedExecutionHandler, setThreadFactory, terminated, toString
-
-
-
-
Constructor Detail
-
UnlimitedPipelineExecutor
@Deprecated(since="14.4.0", forRemoval=true) public UnlimitedPipelineExecutor(Adept2ThreadFactory threadFactory)
Deprecated, for removal: This API element is subject to removal in a future version.UseUnlimitedPipelineExecutor(int, Adept2ThreadFactory)
instead.Creates a new thread pool executor with one pipeline per registered object and no limit for the threads. The threads will stay idle for 60 seconds before they terminate.- Parameters:
threadFactory
- The factory to use when the executor creates a new thread.
-
UnlimitedPipelineExecutor
public UnlimitedPipelineExecutor(int maxPoolSize, Adept2ThreadFactory threadFactory)
Creates a new thread pool executor with one pipeline per registered object and the designated maximum amount of threads. The threads will stay idle for 60 seconds before they terminate.- Parameters:
maxPoolSize
- The maximum number of threads allowed in the pool. Set this to a sensible value (<Integer.MAX_VALUE
).threadFactory
- The factory to use when the executor creates a new thread.
-
-
Method Detail
-
getIndexObjectFor
protected O getIndexObjectFor(O object)
Description copied from class:AbstractObjectSpecificExecutor
Gets the object used for managing and executing runnables within this executor.- Specified by:
getIndexObjectFor
in classAbstractObjectSpecificExecutor<O,O,Queue<Runnable>>
- Parameters:
object
- The object for which a runnable is registered.- Returns:
- The object used for managing and executing runnables (registered for the designated object) within this executor.
-
-