| 
 | |||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectjava.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 ResourceLimitingThreadPoolwith 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 Instrumentablename - The name used to identify a Instrumentable.public java.lang.String getInstrumentableName()
getInstrumentableName in interface Instrumentablepublic Instrument[] getInstruments()
getInstruments in interface Instrumentablepublic Instrumentable[] getChildInstrumentables()
getChildInstrumentables in interface Instrumentablepublic int getSize()
public void enableLogging(Logger logger)
LogEnabled
enableLogging in interface LogEnabledlogger - the logger. Must not be null.public void dispose()
Disposable
dispose in interface Disposablepublic java.lang.Object newInstance()
newInstance in interface ObjectFactorypublic void decommission(java.lang.Object object)
decommission in interface ObjectFactorypublic java.lang.Class getCreatedClass()
getCreatedClass in interface ObjectFactorypublic ThreadControl execute(Executable work)
work - the work to be executed.
public ThreadControl execute(java.lang.Runnable work)
execute in interface ThreadPoolwork - the work to be executed.
public ThreadControl execute(Executable work)
execute in interface ThreadPoolwork - the work to be executed.
| 
 | |||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||