Overview Package Class Tree Deprecated Help PREV CLASS NEXT CLASS FRAMES NO FRAMES SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD
org.apache.tomcat.util.threads
Class ThreadPooljava.lang.Object org.apache.tomcat.util.threads.ThreadPool
- public class ThreadPool
- extends java.lang.Object
A thread pool that is trying to copy the apache process management. Should we remove this in favor of Doug Lea's thread package?
- Author:
- Gal Shachor, Yoav Shapira
Nested Class Summary static class ThreadPool.ControlRunnable
A Thread object that executes various actions ( ThreadPoolRunnable ) under control of ThreadPoolstatic class ThreadPool.MonitorRunnable
Periodically execute an action - cleanup in this casestatic interface ThreadPool.ThreadPoolListener
Interface to allow applications to be notified when a threads are created and stopped.
Field Summary protected int currentThreadCount
protected int currentThreadsBusy
protected boolean isDaemon
protected java.util.Vector listeners
static int MAX_SPARE_THREADS
static int MAX_THREADS
static int MAX_THREADS_MIN
protected int maxSpareThreads
protected int maxThreads
static int MIN_SPARE_THREADS
protected int minSpareThreads
protected ThreadPool.MonitorRunnable monitor
protected java.lang.String name
Name of the threadpoolprotected ThreadPool.ControlRunnable[] pool
protected int sequence
Sequence.protected boolean stopThePool
protected int threadPriority
Thread priority.protected java.util.Hashtable threads
The threads that are part of the pool.static int WORK_WAIT_TIMEOUT
Constructor Summary ThreadPool()
Constructor.
Method Summary void addThread(java.lang.Thread t, ThreadPool.ControlRunnable cr)
void addThreadPoolListener(ThreadPool.ThreadPoolListener tpl)
protected void adjustLimits()
protected void checkSpareControllers()
Called by the monitor thread to harvest idle threads.static ThreadPool createThreadPool(boolean jmx)
Create a ThreadPool instance.int getCurrentThreadCount()
int getCurrentThreadsBusy()
boolean getDaemon()
static int getDebug()
int getMaxSpareThreads()
int getMaxThreads()
int getMinSpareThreads()
ThreadPool.MonitorRunnable getMonitor()
java.lang.String getName()
int getSequence()
java.lang.String[] getThreadParam()
Return an array with the current "param" ( XXX better name ? ) of each thread.int getThreadPriority()
Returns the priority level of current and future threads in this pool.java.util.Enumeration getThreads()
java.lang.String[] getThreadStatus()
Return an array with the status of each thread.boolean isDaemon()
protected void notifyThreadEnd(ThreadPool.ControlRunnable c)
Inform the pool that the specific thread finish.protected void openThreads(int toOpen)
Create missing threads.void removeThread(java.lang.Thread t)
protected void returnController(ThreadPool.ControlRunnable c)
Returns the thread to the pool.void run(java.lang.Runnable r)
void runIt(ThreadPoolRunnable r)
Executes a given Runnable on a thread in the pool, block if needed.void setDaemon(boolean b)
The default is true - the created threads will be in daemon mode.void setMaxSpareThreads(int maxSpareThreads)
void setMaxThreads(int maxThreads)
void setMinSpareThreads(int minSpareThreads)
void setName(java.lang.String name)
void setThreadPriority(int threadPriority)
Sets the thread priority for current and future threads in this pool.void shutdown()
Stop the thread poolvoid start()
java.lang.String threadStatusString()
Debug display of the stage of each thread.
Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Field Detail MAX_THREADS
public static final int MAX_THREADS
- See Also:
- Constant Field Values
MAX_THREADS_MIN
public static final int MAX_THREADS_MIN
- See Also:
- Constant Field Values
MAX_SPARE_THREADS
public static final int MAX_SPARE_THREADS
- See Also:
- Constant Field Values
MIN_SPARE_THREADS
public static final int MIN_SPARE_THREADS
- See Also:
- Constant Field Values
WORK_WAIT_TIMEOUT
public static final int WORK_WAIT_TIMEOUT
- See Also:
- Constant Field Values
pool
protected ThreadPool.ControlRunnable[] pool
monitor
protected ThreadPool.MonitorRunnable monitor
maxThreads
protected int maxThreads
minSpareThreads
protected int minSpareThreads
maxSpareThreads
protected int maxSpareThreads
currentThreadCount
protected int currentThreadCount
currentThreadsBusy
protected int currentThreadsBusy
stopThePool
protected boolean stopThePool
isDaemon
protected boolean isDaemon
threads
protected java.util.Hashtable threads
- The threads that are part of the pool. Key is Thread, value is the ControlRunnable
listeners
protected java.util.Vector listeners
name
protected java.lang.String name
- Name of the threadpool
sequence
protected int sequence
- Sequence.
threadPriority
protected int threadPriority
- Thread priority.
Constructor Detail ThreadPool
public ThreadPool()
- Constructor.
Method Detail createThreadPool
public static ThreadPool createThreadPool(boolean jmx)
- Create a ThreadPool instance.
- Parameters:
- jmx - UNUSED
- Returns:
- ThreadPool instance. If JMX support is requested, you need to call register() in order to set a name.
start
public void start()
getMonitor
public ThreadPool.MonitorRunnable getMonitor()
setThreadPriority
public void setThreadPriority(int threadPriority)
- Sets the thread priority for current and future threads in this pool.
- Parameters:
- threadPriority - The new priority
- Throws:
- java.lang.IllegalArgumentException - If the specified priority is less than Thread.MIN_PRIORITY or more than Thread.MAX_PRIORITY
getThreadPriority
public int getThreadPriority()
- Returns the priority level of current and future threads in this pool.
- Returns:
- The priority
setMaxThreads
public void setMaxThreads(int maxThreads)
getMaxThreads
public int getMaxThreads()
setMinSpareThreads
public void setMinSpareThreads(int minSpareThreads)
getMinSpareThreads
public int getMinSpareThreads()
setMaxSpareThreads
public void setMaxSpareThreads(int maxSpareThreads)
getMaxSpareThreads
public int getMaxSpareThreads()
getCurrentThreadCount
public int getCurrentThreadCount()
getCurrentThreadsBusy
public int getCurrentThreadsBusy()
isDaemon
public boolean isDaemon()
getDebug
public static int getDebug()
setDaemon
public void setDaemon(boolean b)
- The default is true - the created threads will be in daemon mode. If set to false, the control thread will not be daemon - and will keep the process alive.
getDaemon
public boolean getDaemon()
setName
public void setName(java.lang.String name)
getName
public java.lang.String getName()
getSequence
public int getSequence()
addThread
public void addThread(java.lang.Thread t, ThreadPool.ControlRunnable cr)
removeThread
public void removeThread(java.lang.Thread t)
addThreadPoolListener
public void addThreadPoolListener(ThreadPool.ThreadPoolListener tpl)
getThreads
public java.util.Enumeration getThreads()
run
public void run(java.lang.Runnable r)
runIt
public void runIt(ThreadPoolRunnable r)
- Executes a given Runnable on a thread in the pool, block if needed.
shutdown
public void shutdown()
- Stop the thread pool
checkSpareControllers
protected void checkSpareControllers()
- Called by the monitor thread to harvest idle threads.
returnController
protected void returnController(ThreadPool.ControlRunnable c)
- Returns the thread to the pool. Called by threads as they are becoming idel.
notifyThreadEnd
protected void notifyThreadEnd(ThreadPool.ControlRunnable c)
- Inform the pool that the specific thread finish. Called by the ControlRunnable.run() when the runnable throws an exception.
adjustLimits
protected void adjustLimits()
openThreads
protected void openThreads(int toOpen)
- Create missing threads.
- Parameters:
- toOpen - Total number of threads we'll have open
threadStatusString
public java.lang.String threadStatusString()
- Debug display of the stage of each thread. The return is html style, for display in the console ( it can be easily parsed too )
- Returns:
getThreadStatus
public java.lang.String[] getThreadStatus()
- Return an array with the status of each thread. The status indicates the current request processing stage ( for tomcat ) or whatever the thread is doing ( if the application using TP provide this info )
- Returns:
getThreadParam
public java.lang.String[] getThreadParam()
- Return an array with the current "param" ( XXX better name ? ) of each thread. This is typically the last request.
- Returns:
Overview Package Class Tree Deprecated Help PREV CLASS NEXT CLASS FRAMES NO FRAMES SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD
Copyright © 2000-2003 Apache Software Foundation. All Rights Reserved.