public interface ThreadPool
 The interface to be implemented by classes that want to provide a thread
 pool for the QuartzScheduler
 ThreadPool implementation instances should ideally be made
 for the sole use of Quartz.  Most importantly, when the method
 blockForAvailableThreads() returns a value of 1 or greater,
 there must still be at least one available thread in the pool when the
 method runInThread(Runnable) is called a few moments (or
 many moments) later.  If this assumption does not hold true, it may
 result in extra JobStore queries and updates, and if clustering features
 are being used, it may result in greater imballance of load.
 
QuartzScheduler| Modifier and Type | Method and Description | 
|---|---|
| int | blockForAvailableThreads()
 Determines the number of threads that are currently available in in
 the pool. | 
| int | getPoolSize()Get the current number of threads in the  ThreadPool. | 
| void | initialize()
 Must be called before the  ThreadPoolis
 used, in order to give the it a chance to initialize. | 
| boolean | runInThread(Runnable runnable)
 Execute the given  in the next
 availableThread. | 
| void | setInstanceId(String schedInstId)Inform the  ThreadPoolof the Scheduler instance's Id,
 prior to initialize being invoked. | 
| void | setInstanceName(String schedName)Inform the  ThreadPoolof the Scheduler instance's name,
 prior to initialize being invoked. | 
| void | shutdown(boolean waitForJobsToComplete)
 Called by the QuartzScheduler to inform the  ThreadPoolthat it should free up all of it's resources because the scheduler is
 shutting down. | 
boolean runInThread(Runnable runnable)
 Execute the given RunnableThread.
 
 The implementation of this interface should not throw exceptions unless
 there is a serious problem (i.e. a serious misconfiguration). If there
 are no immediately available threads false should be returned.
 
int blockForAvailableThreads()
 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.
void initialize()
         throws SchedulerConfigException
 Must be called before the ThreadPool is
 used, in order to give the it a chance to initialize.
 
Typically called by the SchedulerFactory.
SchedulerConfigExceptionvoid shutdown(boolean waitForJobsToComplete)
 Called by the QuartzScheduler to inform the ThreadPool
 that it should free up all of it's resources because the scheduler is
 shutting down.
 
int getPoolSize()
Get the current number of threads in the ThreadPool.
void setInstanceId(String schedInstId)
Inform the ThreadPool of the Scheduler instance's Id,
 prior to initialize being invoked.
void setInstanceName(String schedName)
Inform the ThreadPool of the Scheduler instance's name,
 prior to initialize being invoked.
Copyright 2001-2019, Terracotta, Inc.