| ThreadPool.java |
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.util.threadpool;
/**
* A thread pool.
*
* @author <a href="mailto:adrian@jboss.org">Adrian Brock</a>
* @version $Revision: 1.3.2.1 $
*/
public interface ThreadPool
{
// Constants -----------------------------------------------------
// Public --------------------------------------------------------
/**
* Stop the pool
*
* @param immediate whether to shutdown immediately
*/
public void stop(boolean immediate);
/** Wait on the queued tasks to complete. This can only be called after
* after stop.
*
* @throws InterruptedException
*/
public void waitForTasks() throws InterruptedException;
/** Wait on the queued tasks to complete upto maxWaitTime milliseconds. This
* can only be called after after stop.
*
* @param maxWaitTime
* @throws InterruptedException
*/
public void waitForTasks(long maxWaitTime) throws InterruptedException;
/**
* Run a task wrapper
*
* @param wrapper the task wrapper
*/
public void runTaskWrapper(TaskWrapper wrapper);
/**
* Run a task
*
* @param task the task
* @throws IllegalArgumentException for a null task
*/
public void runTask(Task task);
/**
* Run a runnable
*
* @param runnable the runnable
* @throws IllegalArgumentException for a null runnable
*/
public void run(Runnable runnable);
/**
*
* @param runnable
* @param startTimeout
* @param completeTimeout
*/
public void run(Runnable runnable, long startTimeout, long completeTimeout);
}
| ThreadPool.java |