Package org.apache.catalina.core

## Class StandardThreadExecutor

- java.lang.Object
- - org.apache.catalina.util.LifecycleBase
  - - org.apache.catalina.util.LifecycleMBeanBase
    - - org.apache.catalina.core.StandardThreadExecutor

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

    public class StandardThreadExecutor
    extends LifecycleMBeanBase
    implements Executor, ResizableExecutor

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

`Lifecycle.SingleUse`

### Field Summary

Fields
`protected boolean` `daemon` Run threads in daemon or non-daemon state
`protected ThreadPoolExecutor` `executor` The executor we use for this component
`protected int` `maxIdleTime` idle time in milliseconds
`protected int` `maxQueueSize` The maximum number of elements that can queue up before we reject them
`protected int` `maxThreads` max number of threads
`protected int` `minSpareThreads` min number of threads
`protected String` `name` the name of this thread pool
`protected String` `namePrefix` Default name prefix for the thread name
`protected static StringManager` `sm`
`protected int` `threadPriority` Default thread priority
`protected long` `threadRenewalDelay` After a context is stopped, threads in the pool are renewed.

### Fields inherited from interface org.apache.catalina.Lifecycle

`AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT`

### Constructor Summary

Constructors
`StandardThreadExecutor()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `contextStopping()`
`void` `execute​(Runnable command)`
`int` `getActiveCount()` Returns the approximate number of threads that are actively executing tasks.
`long` `getCompletedTaskCount()`
`int` `getCorePoolSize()`
`protected String` `getDomainInternal()` Method implemented by sub-classes to identify the domain in which MBeans should be registered.
`int` `getLargestPoolSize()`
`int` `getMaxIdleTime()`
`int` `getMaxQueueSize()`
`int` `getMaxThreads()`
`int` `getMinSpareThreads()`
`String` `getName()`
`String` `getNamePrefix()`
`protected String` `getObjectNameKeyProperties()` Allow sub-classes to specify the key properties component of the `ObjectName` that will be used to register this component.
`int` `getPoolSize()` Returns the current number of threads in the pool.
`int` `getQueueSize()`
`int` `getThreadPriority()`
`long` `getThreadRenewalDelay()`
`boolean` `isDaemon()`
`boolean` `resizePool​(int corePoolSize, int maximumPoolSize)`
`boolean` `resizeQueue​(int capacity)`
`void` `setDaemon​(boolean daemon)`
`void` `setMaxIdleTime​(int maxIdleTime)`
`void` `setMaxQueueSize​(int size)`
`void` `setMaxThreads​(int maxThreads)`
`void` `setMinSpareThreads​(int minSpareThreads)`
`void` `setName​(String name)`
`void` `setNamePrefix​(String namePrefix)`
`void` `setThreadPriority​(int threadPriority)`
`void` `setThreadRenewalDelay​(long threadRenewalDelay)`
`protected void` `startInternal()` Start the component and implement the requirements of `LifecycleBase.startInternal()`.
`protected void` `stopInternal()` Stop the component and implement the requirements of `LifecycleBase.stopInternal()`.

### Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase

`destroyInternal, getDomain, getObjectName, initInternal, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregister`

### Methods inherited from class org.apache.catalina.util.LifecycleBase

`addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.catalina.Lifecycle

`addLifecycleListener, destroy, findLifecycleListeners, getState, getStateName, init, removeLifecycleListener, start, stop`

### Field Detail

#### 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 Detail

#### StandardThreadExecutor

    public StandardThreadExecutor()

### Method Detail

#### 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`