Package org.quartz.core
Class SimpleThreadPool
java.lang.Object
org.quartz.core.SimpleThreadPool
- All Implemented Interfaces:
ThreadPool
This is class is a simple implementation of a thread pool, based on the
ThreadPool
interface.
Runnable
objects are sent to the pool with the
method, which blocks until a runInThread(JobRunShell)
Thread
becomes
available.
The pool has a fixed number of Thread
s, and does not grow or shrink based on
demand.
- Author:
- James House, Juergen Donnerstag
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
Determines the number of threads that are currently available in in the pool.int
Get the current number of threads in theThreadPool
.int
Get the number of worker threads in the pool.int
Get the thread priority of worker threads in the pool.void
Must be called before theThreadPool
is used, in order to give the it a chance to initialize.boolean
boolean
boolean
boolean
runInThread
(JobRunShell runnable) Run the givenRunnable
object in the next availableThread
.void
setInstanceId
(String schedInstId) void
setMakeThreadsDaemons
(boolean makeThreadsDaemons) void
setThreadCount
(int count) Set the number of worker threads in the pool - has no effect afterinitialize()
has been called.void
setThreadNamePrefix
(String prfx) void
setThreadPriority
(int prio) Set the thread priority of worker threads in the pool - has no effect afterinitialize()
has been called.void
setThreadsInheritContextClassLoaderOfInitializingThread
(boolean inheritLoader) void
setThreadsInheritGroupOfInitializingThread
(boolean inheritGroup) void
shutdown()
Terminate any worker threads in this thread group.
-
Constructor Details
-
SimpleThreadPool
public SimpleThreadPool()Create a new (unconfigured)SimpleThreadPool
.- See Also:
-
-
Method Details
-
getPoolSize
public int getPoolSize()Description copied from interface:ThreadPool
Get the current number of threads in theThreadPool
.- Specified by:
getPoolSize
in interfaceThreadPool
-
setThreadCount
public void setThreadCount(int count) Set the number of worker threads in the pool - has no effect afterinitialize()
has been called. -
getThreadCount
public int getThreadCount()Get the number of worker threads in the pool. -
setThreadPriority
public void setThreadPriority(int prio) Set the thread priority of worker threads in the pool - has no effect afterinitialize()
has been called. -
getThreadPriority
public int getThreadPriority()Get the thread priority of worker threads in the pool. -
setThreadNamePrefix
-
getThreadNamePrefix
-
isThreadsInheritContextClassLoaderOfInitializingThread
public boolean isThreadsInheritContextClassLoaderOfInitializingThread()- Returns:
- Returns the threadsInheritContextClassLoaderOfInitializingThread.
-
setThreadsInheritContextClassLoaderOfInitializingThread
public void setThreadsInheritContextClassLoaderOfInitializingThread(boolean inheritLoader) - Parameters:
inheritLoader
- The threadsInheritContextClassLoaderOfInitializingThread to set.
-
isThreadsInheritGroupOfInitializingThread
public boolean isThreadsInheritGroupOfInitializingThread() -
setThreadsInheritGroupOfInitializingThread
public void setThreadsInheritGroupOfInitializingThread(boolean inheritGroup) -
isMakeThreadsDaemons
public boolean isMakeThreadsDaemons()- Returns:
- Returns the value of makeThreadsDaemons.
-
setMakeThreadsDaemons
public void setMakeThreadsDaemons(boolean makeThreadsDaemons) - Parameters:
makeThreadsDaemons
- The value of makeThreadsDaemons to set.
-
setInstanceId
-
initialize
Description copied from interface:ThreadPool
Must be called before theThreadPool
is used, in order to give the it a chance to initialize.Typically called by the
SchedulerFactory
.- Specified by:
initialize
in interfaceThreadPool
- Throws:
SchedulerConfigException
-
shutdown
public void shutdown()Terminate any worker threads in this thread group.Jobs currently in progress will complete.
- Specified by:
shutdown
in interfaceThreadPool
-
runInThread
Run the givenRunnable
object in the next availableThread
. If while waiting the thread pool is asked to shut down, the Runnable is executed immediately within a new additional thread.- Specified by:
runInThread
in interfaceThreadPool
- Parameters:
runnable
- theRunnable
to be added.- Returns:
- true, if the runnable was assigned to run on a Thread.
-
blockForAvailableThreads
public int blockForAvailableThreads()Description copied from interface:ThreadPool
Determines the number of threads that are currently available in in the pool. Useful for determining the number of timesrunInThread(Runnable)
can be called before returning false.The implementation of this method should block until there is at least one available thread.
- Specified by:
blockForAvailableThreads
in interfaceThreadPool
- Returns:
- the number of currently available threads
-