org.apache.avalon.excalibur.thread.impl
Class ResourceLimitingThreadPool

java.lang.Object
  extended byjava.lang.ThreadGroup
      extended byorg.apache.avalon.excalibur.thread.impl.ResourceLimitingThreadPool
All Implemented Interfaces:
Disposable, LogEnabled, ObjectFactory, ThreadPool

public class ResourceLimitingThreadPool
extends java.lang.ThreadGroup
implements ObjectFactory, LogEnabled, Disposable, ThreadPool


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.
 
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.
 java.lang.Class getCreatedClass()
           
 int getSize()
          Return the number of worker threads in the pool.
 java.lang.Object newInstance()
           
 
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

ResourceLimitingThreadPool

public ResourceLimitingThreadPool(int max)
Creates a new ResourceLimitingThreadPool.

Parameters:
max - Maximum number of Poolables which can be stored in the pool, 0 implies no limit.

ResourceLimitingThreadPool

public 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.

Parameters:
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.

ResourceLimitingThreadPool

public ResourceLimitingThreadPool(java.lang.String name,
                                  int max,
                                  boolean maxStrict,
                                  boolean blocking,
                                  long blockTimeout,
                                  long trimInterval)
Creates a new ResourceLimitingThreadPool.

Parameters:
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

getSize

public int getSize()
Return the number of worker threads in the pool.

Returns:
the numebr of worker threads in the pool.

enableLogging

public void enableLogging(Logger logger)
Description copied from interface: LogEnabled
Provide component with a logger.

Specified by:
enableLogging in interface LogEnabled
Parameters:
logger - the logger. Must not be null.

dispose

public void dispose()
Description copied from interface: Disposable
The dispose operation is called at the end of a components lifecycle. This method will be called after Startable.stop() method (if implemented by component). Components use this method to release and destroy any resources that the Component owns.

Specified by:
dispose in interface Disposable

newInstance

public java.lang.Object newInstance()
Specified by:
newInstance in interface ObjectFactory

decommission

public void decommission(java.lang.Object object)
Specified by:
decommission in interface ObjectFactory

getCreatedClass

public java.lang.Class getCreatedClass()
Specified by:
getCreatedClass in interface ObjectFactory

execute

public ThreadControl execute(Executable work)
Run work in separate thread. Return a valid ThreadControl to control work thread.

Parameters:
work - the work to be executed.
Returns:
the ThreadControl

execute

public ThreadControl execute(java.lang.Runnable work)
Run work in separate thread. Return a valid ThreadControl to control work thread.

Specified by:
execute in interface ThreadPool
Parameters:
work - the work to be executed.
Returns:
the ThreadControl

execute

public ThreadControl execute(Executable work)
Run work in separate thread. Return a valid ThreadControl to control work thread.

Specified by:
execute in interface ThreadPool
Parameters:
work - the work to be executed.
Returns:
the ThreadControl


Copyright © 1997-2005 The Apache Software Foundation. All Rights Reserved.