|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.lang.ThreadGroup org.apache.avalon.excalibur.thread.impl.InstrumentedResourceLimitingThreadPool
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.
Field Summary |
Fields inherited from interface org.apache.excalibur.instrument.Instrumentable |
EMPTY_INSTRUMENT_ARRAY, EMPTY_INSTRUMENTABLE_ARRAY |
Constructor Summary | |
InstrumentedResourceLimitingThreadPool(int max)
Creates a new ResourceLimitingThreadPool . |
|
InstrumentedResourceLimitingThreadPool(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. |
|
InstrumentedResourceLimitingThreadPool(java.lang.String name,
int max,
boolean maxStrict,
boolean blocking,
long blockTimeout,
long trimInterval)
Creates a new ResourceLimitingThreadPool . |
Method Summary | |
void |
decommission(java.lang.Object object)
|
void |
dispose()
The dispose operation is called at the end of a components lifecycle. |
void |
enableLogging(Logger logger)
Provide component with a logger. |
ThreadControl |
execute(Executable work)
Run work in separate thread. |
ThreadControl |
execute(Executable work)
Run work in separate thread. |
ThreadControl |
execute(java.lang.Runnable work)
Run work in separate thread. |
Instrumentable[] |
getChildInstrumentables()
Any Object which implements Instrumentable can also make use of other Instrumentable child objects. |
java.lang.Class |
getCreatedClass()
|
java.lang.String |
getInstrumentableName()
Gets the name of the Instrumentable. |
Instrument[] |
getInstruments()
Obtain a reference to all the Instruments that the Instrumentable object wishes to expose. |
int |
getSize()
Return the number of worker threads in the pool. |
java.lang.Object |
newInstance()
|
void |
setInstrumentableName(java.lang.String name)
Sets the name for the Instrumentable. |
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 InstrumentedResourceLimitingThreadPool(int max)
ResourceLimitingThreadPool
.
max
- Maximum number of Poolables which can be stored in the pool, 0 implies no limit.public InstrumentedResourceLimitingThreadPool(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 InstrumentedResourceLimitingThreadPool(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.Method Detail |
public void setInstrumentableName(java.lang.String name)
This value may be set by a parent Instrumentable, or by the InstrumentManager using the value of the 'instrumentable' attribute in the configuration of the component.
setInstrumentableName
in interface Instrumentable
name
- The name used to identify a Instrumentable.public java.lang.String getInstrumentableName()
getInstrumentableName
in interface Instrumentable
public Instrument[] getInstruments()
getInstruments
in interface Instrumentable
public Instrumentable[] getChildInstrumentables()
getChildInstrumentables
in interface Instrumentable
public int getSize()
public void enableLogging(Logger logger)
LogEnabled
enableLogging
in interface LogEnabled
logger
- the logger. Must not be null
.public void dispose()
Disposable
dispose
in interface Disposable
public java.lang.Object newInstance()
newInstance
in interface ObjectFactory
public void decommission(java.lang.Object object)
decommission
in interface ObjectFactory
public java.lang.Class getCreatedClass()
getCreatedClass
in interface ObjectFactory
public ThreadControl execute(Executable work)
work
- the work to be executed.
public ThreadControl execute(java.lang.Runnable work)
execute
in interface ThreadPool
work
- the work to be executed.
public ThreadControl execute(Executable work)
execute
in interface ThreadPool
work
- the work to be executed.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |