org.sblim.wbem.util
Class ThreadPool

java.lang.Object
  extended by org.sblim.wbem.util.ThreadPool

public class ThreadPool
extends java.lang.Object

Class ThreadPool implements a pool that manages threads and executes submitted tasks using this threads.


Constructor Summary
ThreadPool(int pMinPoolSize, int pMaxPoolSize, java.lang.ThreadGroup pGroup, java.lang.String pWorkerName)
          Ctor
 
Method Summary
 boolean execute(java.lang.Runnable task)
           
 boolean execute(java.lang.Runnable task, boolean enqueue)
          Submits a task for execution
protected  java.lang.ThreadGroup getGroup()
          Gets the associated thread group
 long getIdleTimeOutMs()
          Returns the idle timeout
protected  void removeThread(org.sblim.wbem.util.ThreadPool.Worker worker)
          Removes a worker from the pool.
 void shutdown()
          Shuts down the thread pool and all workers
 boolean taskCompleted(org.sblim.wbem.util.ThreadPool.Worker worker, boolean timedOut)
          Used by the worker to report task completion and ask for a new task
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ThreadPool

public ThreadPool(int pMinPoolSize,
                  int pMaxPoolSize,
                  java.lang.ThreadGroup pGroup,
                  java.lang.String pWorkerName)
Ctor

Parameters:
pMinPoolSize - The minimal pool size. The pool will always keep at least this number of worker threads alive even in no load situations.
pMaxPoolSize - The maximal pool size. The pool will create up to that number of worker threads on heavy load.
pGroup - Then thread group to put the worker threads in
pWorkerName - The name to use for worker threads
Method Detail

getIdleTimeOutMs

public long getIdleTimeOutMs()
Returns the idle timeout

Returns:
The timeout

execute

public boolean execute(java.lang.Runnable task)

execute

public boolean execute(java.lang.Runnable task,
                       boolean enqueue)
Submits a task for execution

Parameters:
task - The task
enqueue - if true the task will be enqueued if no worker is free, otherwise the task is executed immediately or not at all.
Returns:
true if the task was executed or enqueued, false otherwise.

getGroup

protected java.lang.ThreadGroup getGroup()
Gets the associated thread group

Returns:
The thread group

taskCompleted

public boolean taskCompleted(org.sblim.wbem.util.ThreadPool.Worker worker,
                             boolean timedOut)
Used by the worker to report task completion and ask for a new task

Parameters:
worker - The worker
timedOut - true if the worker has been idle and reached timeout
Returns:
true if the worker shall stay alive, false if it shall shut down itself

removeThread

protected void removeThread(org.sblim.wbem.util.ThreadPool.Worker worker)
Removes a worker from the pool.

Parameters:
worker - The worker

shutdown

public void shutdown()
Shuts down the thread pool and all workers



Copyright © 2005, 2007 IBM Corporation. All Rights Reserved.