public class SimpleThreadPool extends java.lang.Object implements ThreadPool
This is class is a simple implementation of a thread pool, based on the
interface.
ThreadPool
Runnable objects are sent to the pool with the
method, which blocks until a runInThread(Runnable)Thread becomes available.
The pool has a fixed number of Threads, and does not grow or
shrink based on demand.
| Constructor and Description |
|---|
SimpleThreadPool()
Create a new (unconfigured)
SimpleThreadPool. |
SimpleThreadPool(int threadCount,
int threadPriority)
Create a new
SimpleThreadPool with the specified number
of Thread s that have the given priority. |
| Modifier and Type | Method and Description |
|---|---|
int |
blockForAvailableThreads()
Determines the number of threads that are currently available in in
the pool.
|
org.apache.commons.logging.Log |
getLog() |
int |
getPoolSize() |
int |
getThreadCount()
Get the number of worker threads in the pool.
|
java.lang.String |
getThreadNamePrefix() |
int |
getThreadPriority()
Get the thread priority of worker threads in the pool.
|
void |
initialize()
Called by the QuartzScheduler before the
ThreadPool is
used, in order to give the it a chance to initialize. |
boolean |
isMakeThreadsDaemons() |
boolean |
isThreadsInheritContextClassLoaderOfInitializingThread() |
boolean |
isThreadsInheritGroupOfInitializingThread() |
boolean |
runInThread(java.lang.Runnable runnable)
Run the given
Runnable object in the next available
Thread. |
void |
setMakeThreadsDaemons(boolean makeThreadsDaemons) |
void |
setThreadCount(int count)
Set the number of worker threads in the pool - has no effect after
initialize() has been called. |
void |
setThreadNamePrefix(java.lang.String prfx) |
void |
setThreadPriority(int prio)
Set the thread priority of worker threads in the pool - has no effect
after
initialize() has been called. |
void |
setThreadsInheritContextClassLoaderOfInitializingThread(boolean inheritLoader) |
void |
setThreadsInheritGroupOfInitializingThread(boolean inheritGroup) |
void |
shutdown()
Terminate any worker threads in this thread group.
|
void |
shutdown(boolean waitForJobsToComplete)
Terminate any worker threads in this thread group.
|
public SimpleThreadPool()
Create a new (unconfigured) SimpleThreadPool.
setThreadCount(int),
setThreadPriority(int)public SimpleThreadPool(int threadCount,
int threadPriority)
Create a new SimpleThreadPool with the specified number
of Thread s that have the given priority.
threadCount - the number of worker Threads in the pool, must
be > 0.threadPriority - the thread priority for the worker threads.Threadpublic org.apache.commons.logging.Log getLog()
public int getPoolSize()
getPoolSize in interface ThreadPoolpublic void setThreadCount(int count)
Set the number of worker threads in the pool - has no effect after
initialize() has been called.
public int getThreadCount()
Get the number of worker threads in the pool.
public void setThreadPriority(int prio)
Set the thread priority of worker threads in the pool - has no effect
after initialize() has been called.
public int getThreadPriority()
Get the thread priority of worker threads in the pool.
public void setThreadNamePrefix(java.lang.String prfx)
public java.lang.String getThreadNamePrefix()
public boolean isThreadsInheritContextClassLoaderOfInitializingThread()
public void setThreadsInheritContextClassLoaderOfInitializingThread(boolean inheritLoader)
inheritLoader - The threadsInheritContextClassLoaderOfInitializingThread to
set.public boolean isThreadsInheritGroupOfInitializingThread()
public void setThreadsInheritGroupOfInitializingThread(boolean inheritGroup)
public boolean isMakeThreadsDaemons()
public void setMakeThreadsDaemons(boolean makeThreadsDaemons)
makeThreadsDaemons - The value of makeThreadsDaemons to set.public void initialize()
throws SchedulerConfigException
ThreadPool
Called by the QuartzScheduler before the ThreadPool is
used, in order to give the it a chance to initialize.
initialize in interface ThreadPoolSchedulerConfigExceptionpublic void shutdown()
Terminate any worker threads in this thread group.
Jobs currently in progress will complete.
public void shutdown(boolean waitForJobsToComplete)
Terminate any worker threads in this thread group.
Jobs currently in progress will complete.
shutdown in interface ThreadPoolpublic boolean runInThread(java.lang.Runnable runnable)
Run the given Runnable object in the next available
Thread. If while waiting the thread pool is asked to
shut down, the Runnable is executed immediately within a new additional
thread.
runInThread in interface ThreadPoolrunnable - the Runnable to be added.public int blockForAvailableThreads()
ThreadPool
Determines the number of threads that are currently available in in
the pool. Useful for determining the number of times
runInThread(Runnable) can be called before returning
false.
The implementation of this method should block until there is at least one available thread.
blockForAvailableThreads in interface ThreadPool