Class LimitedPipelineExecutor<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 LimitedPipelineExecutor<O>
    extends AbstractPipeliningExecutor<O,​Integer>
    A pipeline executor that has an upper limit for the amount of pipelines. Several different objects will be executed by the same pipeline.
    • Field Detail

      • limit

        protected final int limit
        The maximum amount of pipelines.
    • Constructor Detail

      • LimitedPipelineExecutor

        public LimitedPipelineExecutor​(int limit,
                                       Adept2ThreadFactory threadFactory)
        Creates a new thread pool executor with the designated amount of pipelines and threads. The threads will stay idle for 60 seconds before they terminate.
        Parameters:
        limit - The maximum number of threads allowed in the pool and also the maximum number of pipelines.
        threadFactory - The factory to use when the executor creates a new thread.
    • Method Detail

      • getIndexObjectFor

        protected Integer getIndexObjectFor​(O object)
        Gets the object used for managing and executing runnables within this executor. Returns the hashcode of the designated object modulo the limit.
        Specified by:
        getIndexObjectFor in class AbstractObjectSpecificExecutor<O,​Integer,​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.