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 Modifier and Type Field Description protected booleandaemonRun threads in daemon or non-daemon stateprotected ThreadPoolExecutorexecutorThe executor we use for this componentprotected intmaxIdleTimeidle time in millisecondsprotected intmaxQueueSizeThe maximum number of elements that can queue up before we reject themprotected intmaxThreadsmax number of threadsprotected intminSpareThreadsmin number of threadsprotected Stringnamethe name of this thread poolprotected StringnamePrefixDefault name prefix for the thread nameprotected static StringManagersmprotected intthreadPriorityDefault thread priorityprotected longthreadRenewalDelayAfter 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 Constructor Description StandardThreadExecutor()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidcontextStopping()voidexecute(Runnable command)voidexecute(Runnable command, long timeout, TimeUnit unit)Deprecated.intgetActiveCount()Returns the approximate number of threads that are actively executing tasks.longgetCompletedTaskCount()intgetCorePoolSize()protected StringgetDomainInternal()Method implemented by sub-classes to identify the domain in which MBeans should be registered.intgetLargestPoolSize()intgetMaxIdleTime()intgetMaxQueueSize()intgetMaxThreads()intgetMinSpareThreads()StringgetName()StringgetNamePrefix()protected StringgetObjectNameKeyProperties()Allow sub-classes to specify the key properties component of theObjectNamethat will be used to register this component.intgetPoolSize()Returns the current number of threads in the pool.intgetQueueSize()intgetThreadPriority()longgetThreadRenewalDelay()booleanisDaemon()booleanresizePool(int corePoolSize, int maximumPoolSize)booleanresizeQueue(int capacity)voidsetDaemon(boolean daemon)voidsetMaxIdleTime(int maxIdleTime)voidsetMaxQueueSize(int size)voidsetMaxThreads(int maxThreads)voidsetMinSpareThreads(int minSpareThreads)voidsetName(String name)voidsetNamePrefix(String namePrefix)voidsetThreadPriority(int threadPriority)voidsetThreadRenewalDelay(long threadRenewalDelay)protected voidstartInternal()Start the component and implement the requirements ofLifecycleBase.startInternal().protected voidstopInternal()Stop the component and implement the requirements ofLifecycleBase.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.
-
-
Method Detail
-
startInternal
protected void startInternal() throws LifecycleExceptionStart the component and implement the requirements ofLifecycleBase.startInternal().- Specified by:
startInternalin classLifecycleBase- Throws:
LifecycleException- if this component detects a fatal error that prevents this component from being used
-
stopInternal
protected void stopInternal() throws LifecycleExceptionStop the component and implement the requirements ofLifecycleBase.stopInternal().- Specified by:
stopInternalin classLifecycleBase- 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:ExecutorExecutes 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 theExecutorimplementation. 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
-
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:
getMaxThreadsin interfaceResizableExecutor
-
getMinSpareThreads
public int getMinSpareThreads()
-
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:ResizableExecutorReturns the approximate number of threads that are actively executing tasks.- Specified by:
getActiveCountin interfaceResizableExecutor- 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:ResizableExecutorReturns the current number of threads in the pool.- Specified by:
getPoolSizein interfaceResizableExecutor- Returns:
- the number of threads
-
getQueueSize
public int getQueueSize()
-
resizePool
public boolean resizePool(int corePoolSize, int maximumPoolSize)- Specified by:
resizePoolin interfaceResizableExecutor
-
resizeQueue
public boolean resizeQueue(int capacity)
- Specified by:
resizeQueuein interfaceResizableExecutor
-
getDomainInternal
protected String getDomainInternal()
Description copied from class:LifecycleMBeanBaseMethod implemented by sub-classes to identify the domain in which MBeans should be registered.- Specified by:
getDomainInternalin classLifecycleMBeanBase- Returns:
- The name of the domain to use to register MBeans.
-
getObjectNameKeyProperties
protected String getObjectNameKeyProperties()
Description copied from class:LifecycleMBeanBaseAllow sub-classes to specify the key properties component of theObjectNamethat will be used to register this component.- Specified by:
getObjectNameKeyPropertiesin classLifecycleMBeanBase- Returns:
- The string representation of the key properties component of the
desired
ObjectName
-
-