visad.util
Class ThreadPool

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

public class ThreadPool
extends java.lang.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(java.lang.String prefix)
          Build a thread pool with the specified thread name prefix, and the default minimum and maximum numbers of threads
ThreadPool(java.lang.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
 void queue(java.lang.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(java.lang.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 java.lang.Exception
Build a thread pool with the default thread name prefix and the default minimum and maximum numbers of threads

Throws:
java.lang.Exception

ThreadPool

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

Throws:
java.lang.Exception

ThreadPool

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

Throws:
java.lang.Exception

ThreadPool

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

Throws:
java.lang.Exception

ThreadPool

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

Throws:
java.lang.Exception
Method Detail

remove

public void remove(java.lang.Runnable r)

queue

public void queue(java.lang.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


waitForTasks

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


setThreadMaximum

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

Throws:
java.lang.Exception

stopThreads

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