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:
org.apache.avalon.framework.activity.Disposable, org.apache.avalon.framework.logger.LogEnabled, org.apache.avalon.excalibur.pool.ObjectFactory, org.apache.excalibur.thread.ThreadPool

public class ResourceLimitingThreadPool
extends java.lang.ThreadGroup
implements org.apache.avalon.excalibur.pool.ObjectFactory, org.apache.avalon.framework.logger.LogEnabled, org.apache.avalon.framework.activity.Disposable, org.apache.excalibur.thread.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()
           
 void enableLogging(org.apache.avalon.framework.logger.Logger logger)
           
 org.apache.excalibur.thread.ThreadControl execute(org.apache.avalon.framework.activity.Executable work)
          Run work in separate thread.
 org.apache.excalibur.thread.ThreadControl execute(org.apache.excalibur.thread.Executable work)
          Run work in separate thread.
 org.apache.excalibur.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(org.apache.avalon.framework.logger.Logger logger)
Specified by:
enableLogging in interface org.apache.avalon.framework.logger.LogEnabled

dispose

public void dispose()
Specified by:
dispose in interface org.apache.avalon.framework.activity.Disposable

newInstance

public java.lang.Object newInstance()
Specified by:
newInstance in interface org.apache.avalon.excalibur.pool.ObjectFactory

decommission

public void decommission(java.lang.Object object)
Specified by:
decommission in interface org.apache.avalon.excalibur.pool.ObjectFactory

getCreatedClass

public java.lang.Class getCreatedClass()
Specified by:
getCreatedClass in interface org.apache.avalon.excalibur.pool.ObjectFactory

execute

public org.apache.excalibur.thread.ThreadControl execute(org.apache.avalon.framework.activity.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 org.apache.excalibur.thread.ThreadControl execute(java.lang.Runnable work)
Run work in separate thread. Return a valid ThreadControl to control work thread.

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

execute

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

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


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