visad.util
Class ThreadPool

java.lang.Object
  extended by visad.util.ThreadPool

public class ThreadPool
extends Object

A pool of threads (with minimum and maximum limits on the number of threads) which can be used to execute any Runnable tasks.


Constructor Summary
ThreadPool()
          Build a thread pool with the default thread name prefix and the default minimum and maximum numbers of threads
ThreadPool(int max)
          Build a thread pool with the specified maximum number of threads, and the default thread name prefix and minimum number of threads
ThreadPool(int min, int max)
          Build a thread pool with the specified minimum and maximum numbers of threads, and the default thread name prefix
ThreadPool(String prefix)
          Build a thread pool with the specified thread name prefix, and the default minimum and maximum numbers of threads
ThreadPool(String prefix, int min, int max)
          Build a thread pool with the specified thread name prefix and minimum and maximum numbers of threads
 
Method Summary
 int getTaskCount()
          return the number of tasks in the queue and that are running
 boolean isTerminated()
          Has the thread pool been closed?
 void printPool()
          Utility method to print out the tasks
 void queue(Runnable r)
          Add a task to the queue; tasks are executed as soon as a thread is available, in the order in which they are submitted
 void remove(Runnable r)
           
 void setThreadMaximum(int num)
          increase the maximum number of pooled threads
 void stopThreads()
          Stop all threads as soon as all queued tasks are completed
 boolean waitForTasks()
          wait for currently-running tasks to finish
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ThreadPool

public ThreadPool()
           throws Exception
Build a thread pool with the default thread name prefix and the default minimum and maximum numbers of threads

Throws:
Exception

ThreadPool

public ThreadPool(String prefix)
           throws Exception
Build a thread pool with the specified thread name prefix, and the default minimum and maximum numbers of threads

Parameters:
prefix -
Throws:
Exception

ThreadPool

public ThreadPool(int max)
           throws Exception
Build a thread pool with the specified maximum number of threads, and the default thread name prefix and minimum number of threads

Parameters:
max -
Throws:
Exception

ThreadPool

public ThreadPool(int min,
                  int max)
           throws Exception
Build a thread pool with the specified minimum and maximum numbers of threads, and the default thread name prefix

Parameters:
min -
max -
Throws:
Exception

ThreadPool

public ThreadPool(String prefix,
                  int min,
                  int max)
           throws Exception
Build a thread pool with the specified thread name prefix and minimum and maximum numbers of threads

Parameters:
prefix -
min -
max -
Throws:
Exception
Method Detail

getTaskCount

public int getTaskCount()
return the number of tasks in the queue and that are running

Returns:
number of queued and active tasks

remove

public void remove(Runnable r)
Parameters:
r -

isTerminated

public boolean isTerminated()
Has the thread pool been closed?

Returns:
true if the pool has been terminated.

printPool

public void printPool()
Utility method to print out the tasks


queue

public void queue(Runnable r)
Add a task to the queue; tasks are executed as soon as a thread is available, in the order in which they are submitted

Parameters:
r -

waitForTasks

public boolean waitForTasks()
wait for currently-running tasks to finish

Returns:

setThreadMaximum

public void setThreadMaximum(int num)
                      throws Exception
increase the maximum number of pooled threads

Parameters:
num -
Throws:
Exception

stopThreads

public void stopThreads()
Stop all threads as soon as all queued tasks are completed