|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object
|
+--java.lang.ThreadGroup
|
+--org.apache.avalon.excalibur.thread.impl.ResourceLimitingThreadPool
A Thread Pool which can be configured to have a hard limit on the maximum number of threads which will be allocated. This is very important for servers to avoid running out of system resources. The pool can be configured to block for a new thread or throw an exception. The maximum block time can also be set. Based on org.apache.avalon.excalibur.thread.impl.DefaultThreadPool in the Excalibur sandbox.
| Constructor Summary | |
ResourceLimitingThreadPool(int max)
Creates a new ResourceLimitingThreadPool. |
|
ResourceLimitingThreadPool(java.lang.String name,
int max)
Creates a new ResourceLimitingThreadPool with maxStrict enabled,
blocking enabled, no block timeout and a trim interval of 10 seconds. |
|
ResourceLimitingThreadPool(java.lang.String name,
int max,
boolean maxStrict,
boolean blocking,
long blockTimeout,
long trimInterval)
Creates a new ResourceLimitingThreadPool. |
|
ResourceLimitingThreadPool(java.lang.String name,
int max,
boolean maxStrict,
boolean blocking,
long blockTimeout,
long trimInterval,
ThreadContext context)
Creates a new ResourceLimitingThreadPool. |
|
| Method Summary | |
void |
decommission(java.lang.Object object)
Cleans up any resources associated with the specified object and takes it out of commission. |
void |
dispose()
Clean up resources and references. |
void |
enableLogging(org.apache.avalon.framework.logger.Logger logger)
Set the logger. |
ThreadControl |
execute(org.apache.avalon.framework.activity.Executable work)
Run work in separate thread. |
ThreadControl |
execute(java.lang.Runnable work)
Run work in separate thread. |
java.lang.Class |
getCreatedClass()
Returns the class of which this ObjectFactory creates instances. |
protected org.apache.avalon.excalibur.thread.impl.WorkerThread |
getWorker()
Retrieve a worker thread from pool. |
java.lang.Object |
newInstance()
Creates and returns a new WorkerThread. |
| Methods inherited from class java.lang.ThreadGroup |
activeCount, activeGroupCount, allowThreadSuspension, checkAccess, destroy, enumerate, enumerate, enumerate, enumerate, getMaxPriority, getName, getParent, interrupt, isDaemon, isDestroyed, list, parentOf, resume, setDaemon, setMaxPriority, stop, suspend, toString, uncaughtException |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
public ResourceLimitingThreadPool(int max)
ResourceLimitingThreadPool.max - Maximum number of Poolables which can be stored in the pool, 0 implies no limit.
public ResourceLimitingThreadPool(java.lang.String name,
int max)
ResourceLimitingThreadPool with maxStrict enabled,
blocking enabled, no block timeout and a trim interval of 10 seconds.name - Name which will used as the thread group name as well as the prefix of the
names of all threads created by the pool.max - Maximum number of WorkerThreads which can be stored in the pool,
0 implies no limit.
public ResourceLimitingThreadPool(java.lang.String name,
int max,
boolean maxStrict,
boolean blocking,
long blockTimeout,
long trimInterval)
ResourceLimitingThreadPool.name - Name which will used as the thread group name as well as the prefix of the
names of all threads created by the pool.max - Maximum number of WorkerThreads which can be stored in the pool,
0 implies no limit.maxStrict - true if the pool should never allow more than max WorkerThreads to
be created. Will cause an exception to be thrown if more than max WorkerThreads are
requested and blocking is false.blocking - true if the pool should cause a thread calling get() to block when
WorkerThreads are not currently available on the pool.blockTimeout - The maximum amount of time, in milliseconds, that a call to get() will
block before an exception is thrown. A value of 0 implies an indefinate wait.trimInterval - The minimum interval with which old unused WorkerThreads will be
removed from the pool. A value of 0 will cause the pool to never trim WorkerThreads.
public ResourceLimitingThreadPool(java.lang.String name,
int max,
boolean maxStrict,
boolean blocking,
long blockTimeout,
long trimInterval,
ThreadContext context)
ResourceLimitingThreadPool.name - Name which will used as the thread group name as well as the prefix of the
names of all threads created by the pool.max - Maximum number of WorkerThreads which can be stored in the pool,
0 implies no limit.maxStrict - true if the pool should never allow more than max WorkerThreads to
be created. Will cause an exception to be thrown if more than max WorkerThreads are
requested and blocking is false.blocking - true if the pool should cause a thread calling get() to block when
WorkerThreads are not currently available on the pool.blockTimeout - The maximum amount of time, in milliseconds, that a call to get() will
block before an exception is thrown. A value of 0 implies an indefinate wait.trimInterval - The minimum interval with which old unused WorkerThreads will be
removed from the pool. A value of 0 will cause the pool to never trim WorkerThreads.context - ThreadContext| Method Detail |
public java.lang.Object newInstance()
WorkerThread.newInstance in interface ObjectFactorypublic java.lang.Class getCreatedClass()
ObjectFactory creates instances.getCreatedClass in interface ObjectFactorypublic void decommission(java.lang.Object object)
decommission in interface ObjectFactoryobject - the object to be decommissionedpublic void enableLogging(org.apache.avalon.framework.logger.Logger logger)
enableLogging in interface org.apache.avalon.framework.logger.LogEnabledlogger - public void dispose()
dispose in interface org.apache.avalon.framework.activity.Disposablepublic ThreadControl execute(java.lang.Runnable work)
execute in interface ThreadPoolwork - the work to be executed.public ThreadControl execute(org.apache.avalon.framework.activity.Executable work)
execute in interface ThreadPoolwork - the work to be executed.protected org.apache.avalon.excalibur.thread.impl.WorkerThread getWorker()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||