public class SimpleThreadPool extends 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. |
| Modifier and Type | Method and Description |
|---|---|
int |
blockForAvailableThreads()
Determines the number of threads that are currently available in in the pool.
|
org.slf4j.Logger |
getLog() |
int |
getPoolSize()
Get the current number of threads in the
ThreadPool. |
int |
getThreadCount()
Get the number of worker threads in the pool.
|
String |
getThreadNamePrefix() |
int |
getThreadPriority()
Get the thread priority of worker threads in the pool.
|
void |
initialize()
Must be called before the
ThreadPool is used, in order to give the it a chance to initialize. |
boolean |
isMakeThreadsDaemons() |
boolean |
isThreadsInheritContextClassLoaderOfInitializingThread() |
boolean |
isThreadsInheritGroupOfInitializingThread() |
boolean |
runInThread(Runnable runnable)
Run the given
Runnable object in the next available Thread. |
void |
setInstanceId(String schedInstId) |
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(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 org.slf4j.Logger getLog()
public int getPoolSize()
ThreadPool
Get the current number of threads in the ThreadPool.
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(String prfx)
public 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 setInstanceId(String schedInstId)
public void initialize()
throws SchedulerConfigException
ThreadPool
Must be called before the ThreadPool is used, in order to give the it a chance to initialize.
Typically called by the SchedulerFactory.
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(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 ThreadPoolCopyright © 2011–2017 Knowm Inc.. All rights reserved.