Class StandardThreadExecutor

All Implemented Interfaces:
Executor, MBeanRegistration, Executor, JmxEnabled, Lifecycle, ResizableExecutor

public class StandardThreadExecutor extends LifecycleMBeanBase implements Executor, ResizableExecutor
  • Field Details

    • sm

      protected static final StringManager sm
    • threadPriority

      protected int threadPriority
      Default thread priority
    • daemon

      protected boolean daemon
      Run threads in daemon or non-daemon state
    • namePrefix

      protected String namePrefix
      Default name prefix for the thread name
    • maxThreads

      protected int maxThreads
      max number of threads
    • minSpareThreads

      protected int minSpareThreads
      min number of threads
    • maxIdleTime

      protected int maxIdleTime
      idle time in milliseconds
    • executor

      protected ThreadPoolExecutor executor
      The executor we use for this component
    • name

      protected String name
      the name of this thread pool
    • maxQueueSize

      protected int maxQueueSize
      The maximum number of elements that can queue up before we reject them
    • threadRenewalDelay

      protected long threadRenewalDelay
      After a context is stopped, threads in the pool are renewed. To avoid renewing all threads at the same time, this delay is observed between 2 threads being renewed.
  • Constructor Details

    • StandardThreadExecutor

      public StandardThreadExecutor()
  • Method Details

    • startInternal

      protected void startInternal() throws LifecycleException
      Start the component and implement the requirements of LifecycleBase.startInternal().
      Specified by:
      startInternal in class LifecycleBase
      Throws:
      LifecycleException - if this component detects a fatal error that prevents this component from being used
    • stopInternal

      protected void stopInternal() throws LifecycleException
      Stop the component and implement the requirements of LifecycleBase.stopInternal().
      Specified by:
      stopInternal in class LifecycleBase
      Throws:
      LifecycleException - if this component detects a fatal error that needs to be reported
    • execute

      public void execute(Runnable command)
      Specified by:
      execute in interface Executor
    • contextStopping

      public void contextStopping()
    • getThreadPriority

      public int getThreadPriority()
    • isDaemon

      public boolean isDaemon()
    • getNamePrefix

      public String getNamePrefix()
    • getMaxIdleTime

      public int getMaxIdleTime()
    • getMaxThreads

      public int getMaxThreads()
      Specified by:
      getMaxThreads in interface ResizableExecutor
    • getMinSpareThreads

      public int getMinSpareThreads()
    • getName

      public String getName()
      Specified by:
      getName in interface Executor
    • setThreadPriority

      public void setThreadPriority(int threadPriority)
    • setDaemon

      public void setDaemon(boolean daemon)
    • setNamePrefix

      public void setNamePrefix(String namePrefix)
    • setMaxIdleTime

      public void setMaxIdleTime(int maxIdleTime)
    • setMaxThreads

      public void setMaxThreads(int maxThreads)
    • setMinSpareThreads

      public void setMinSpareThreads(int minSpareThreads)
    • setName

      public void setName(String name)
    • setMaxQueueSize

      public void setMaxQueueSize(int size)
    • getMaxQueueSize

      public int getMaxQueueSize()
    • getThreadRenewalDelay

      public long getThreadRenewalDelay()
    • setThreadRenewalDelay

      public void setThreadRenewalDelay(long threadRenewalDelay)
    • getActiveCount

      public int getActiveCount()
      Description copied from interface: ResizableExecutor
      Returns the approximate number of threads that are actively executing tasks.
      Specified by:
      getActiveCount in interface ResizableExecutor
      Returns:
      the number of threads
    • getCompletedTaskCount

      public long getCompletedTaskCount()
    • getCorePoolSize

      public int getCorePoolSize()
    • getLargestPoolSize

      public int getLargestPoolSize()
    • getPoolSize

      public int getPoolSize()
      Description copied from interface: ResizableExecutor
      Returns the current number of threads in the pool.
      Specified by:
      getPoolSize in interface ResizableExecutor
      Returns:
      the number of threads
    • getQueueSize

      public int getQueueSize()
    • resizePool

      public boolean resizePool(int corePoolSize, int maximumPoolSize)
      Specified by:
      resizePool in interface ResizableExecutor
    • resizeQueue

      public boolean resizeQueue(int capacity)
      Specified by:
      resizeQueue in interface ResizableExecutor
    • getDomainInternal

      protected String getDomainInternal()
      Description copied from class: LifecycleMBeanBase
      Method implemented by sub-classes to identify the domain in which MBeans should be registered.
      Specified by:
      getDomainInternal in class LifecycleMBeanBase
      Returns:
      The name of the domain to use to register MBeans.
    • getObjectNameKeyProperties

      protected String getObjectNameKeyProperties()
      Description copied from class: LifecycleMBeanBase
      Allow sub-classes to specify the key properties component of the ObjectName that will be used to register this component.
      Specified by:
      getObjectNameKeyProperties in class LifecycleMBeanBase
      Returns:
      The string representation of the key properties component of the desired ObjectName