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 Details

    • limit

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

    • 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 Details

    • 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.