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:
java.util.concurrent.Executor
,javax.management.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 boolean
daemon
Run threads in daemon or non-daemon stateprotected ThreadPoolExecutor
executor
The executor we use for this componentprotected int
maxIdleTime
idle time in millisecondsprotected int
maxQueueSize
The maximum number of elements that can queue up before we reject themprotected int
maxThreads
max number of threadsprotected int
minSpareThreads
min number of threadsprotected java.lang.String
name
the name of this thread poolprotected java.lang.String
namePrefix
Default name prefix for the thread nameprotected static StringManager
sm
protected int
threadPriority
Default thread priorityprotected 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 Constructor Description StandardThreadExecutor()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
contextStopping()
void
execute(java.lang.Runnable command)
void
execute(java.lang.Runnable command, long timeout, java.util.concurrent.TimeUnit unit)
Deprecated.int
getActiveCount()
Returns the approximate number of threads that are actively executing tasks.long
getCompletedTaskCount()
int
getCorePoolSize()
protected java.lang.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()
java.lang.String
getName()
java.lang.String
getNamePrefix()
protected java.lang.String
getObjectNameKeyProperties()
Allow sub-classes to specify the key properties component of theObjectName
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(java.lang.String name)
void
setNamePrefix(java.lang.String namePrefix)
void
setThreadPriority(int threadPriority)
void
setThreadRenewalDelay(long threadRenewalDelay)
protected void
startInternal()
Start the component and implement the requirements ofLifecycleBase.startInternal()
.protected void
stopInternal()
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 java.lang.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 java.lang.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 LifecycleException
Start the component and implement the requirements ofLifecycleBase.startInternal()
.- Specified by:
startInternal
in classLifecycleBase
- 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 ofLifecycleBase.stopInternal()
.- Specified by:
stopInternal
in classLifecycleBase
- Throws:
LifecycleException
- if this component detects a fatal error that needs to be reported
-
execute
@Deprecated public void execute(java.lang.Runnable command, long timeout, java.util.concurrent.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 theExecutor
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
-
execute
public void execute(java.lang.Runnable command)
- Specified by:
execute
in interfacejava.util.concurrent.Executor
-
contextStopping
public void contextStopping()
-
getThreadPriority
public int getThreadPriority()
-
isDaemon
public boolean isDaemon()
-
getNamePrefix
public java.lang.String getNamePrefix()
-
getMaxIdleTime
public int getMaxIdleTime()
-
getMaxThreads
public int getMaxThreads()
- Specified by:
getMaxThreads
in interfaceResizableExecutor
-
getMinSpareThreads
public int getMinSpareThreads()
-
setThreadPriority
public void setThreadPriority(int threadPriority)
-
setDaemon
public void setDaemon(boolean daemon)
-
setNamePrefix
public void setNamePrefix(java.lang.String namePrefix)
-
setMaxIdleTime
public void setMaxIdleTime(int maxIdleTime)
-
setMaxThreads
public void setMaxThreads(int maxThreads)
-
setMinSpareThreads
public void setMinSpareThreads(int minSpareThreads)
-
setName
public void setName(java.lang.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 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:ResizableExecutor
Returns the current number of threads in the pool.- Specified by:
getPoolSize
in interfaceResizableExecutor
- Returns:
- the number of threads
-
getQueueSize
public int getQueueSize()
-
resizePool
public boolean resizePool(int corePoolSize, int maximumPoolSize)
- Specified by:
resizePool
in interfaceResizableExecutor
-
resizeQueue
public boolean resizeQueue(int capacity)
- Specified by:
resizeQueue
in interfaceResizableExecutor
-
getDomainInternal
protected java.lang.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 classLifecycleMBeanBase
- Returns:
- The name of the domain to use to register MBeans.
-
getObjectNameKeyProperties
protected java.lang.String getObjectNameKeyProperties()
Description copied from class:LifecycleMBeanBase
Allow sub-classes to specify the key properties component of theObjectName
that will be used to register this component.- Specified by:
getObjectNameKeyProperties
in classLifecycleMBeanBase
- Returns:
- The string representation of the key properties component of the
desired
ObjectName
-
-