org.apache.xmlrpc.util

Class ThreadPool


public class ThreadPool
extends java.lang.Object

Simple thread pool. A task is executed by obtaining a thread from the pool

Nested Class Summary

static interface
ThreadPool.InterruptableTask
A task, which may be interrupted, if the pool is shutting down.
static interface
ThreadPool.Task
The thread pool contains instances of ThreadPool.Task.

Constructor Summary

ThreadPool(int pMaxSize, String pName)
Creates a new instance.

Method Summary

boolean
addTask(ThreadPool.Task pTask)
Adds a task for immediate or deferred execution.
int
getMaxThreads()
Returns the maximum number of concurrent threads.
int
getNumThreads()
Returns the number of threads, which have actually been created, as opposed to the number of currently running threads.
void
shutdown()
Closes the pool.
boolean
startTask(ThreadPool.Task pTask)
Starts a task immediately.

Constructor Details

ThreadPool

public ThreadPool(int pMaxSize,
                  String pName)
Creates a new instance.
Parameters:
pMaxSize - Maximum number of concurrent threads.
pName - Thread group name.

Method Details

addTask

public boolean addTask(ThreadPool.Task pTask)
Adds a task for immediate or deferred execution.
Parameters:
pTask - The task being added.
Returns:
True, if the task was started immediately. False, if the task will be executed later.

getMaxThreads

public int getMaxThreads()
Returns the maximum number of concurrent threads.
Returns:
Maximum number of threads.

getNumThreads

public int getNumThreads()
Returns the number of threads, which have actually been created, as opposed to the number of currently running threads.

shutdown

public void shutdown()
Closes the pool.

startTask

public boolean startTask(ThreadPool.Task pTask)
Starts a task immediately.
Parameters:
pTask - The task being started.
Returns:
True, if the task could be started immediately. False, if the maxmimum number of concurrent tasks was exceeded. If so, you might consider to use the addTask(ThreadPool.Task) method instead.

Copyright © 2001-2007 Apache Software Foundation. All Rights Reserved.