org.apache.xmlrpc.util

Class ThreadPool

public class ThreadPool extends Object

Simple thread pool. A task is executed by obtaining a thread from the pool
Nested Class Summary
interfaceThreadPool.Task
The thread pool contains instances of {@link ThreadPool.Task}.
Constructor Summary
ThreadPool(int pMaxSize, String pName)
Creates a new instance.
Method Summary
booleanaddTask(ThreadPool.Task pTask)
Adds a task for immediate or deferred execution.
intgetMaxThreads()
Returns the maximum number of concurrent threads.
intgetNumThreads()
Returns the number of threads, which have actually been created, as opposed to the number of currently running threads.
voidshutdown()
Closes the pool.
booleanstartTask(ThreadPool.Task pTask)
Starts a task immediately.

Constructor Detail

ThreadPool

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

Parameters: pMaxSize Maximum number of concurrent threads. pName Thread group name.

Method Detail

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 {@link #addTask(Task)} method instead.

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