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

      @Deprecated public void execute(Runnable command, long timeout, TimeUnit unit)
      Deprecated.
      Description copied from interface: Executor
      Executes the given command at some time in the future. The command may execute in a new thread, in a pooled thread, or in the calling thread, at the discretion of the Executor implementation. If no threads are available, it will be added to the work queue. If the work queue is full, the system will wait for the specified time until it throws a RejectedExecutionException
      Specified by:
      execute in interface Executor
      Parameters:
      command - the runnable task
      timeout - the length of time to wait for the task to complete
      unit - the units in which timeout is expressed
    • 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