Interface ThreadPool
-
- All Known Implementing Classes:
SimpleThreadPool,ZeroSizeThreadPool
public interface ThreadPoolThe interface to be implemented by classes that want to provide a thread pool for the
's use.QuartzSchedulerThreadPoolimplementation instances should ideally be made for the sole use of Quartz. Most importantly, when the methodblockForAvailableThreads()returns a value of 1 or greater, there must still be at least one available thread in the pool when the methodrunInThread(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 imbalance of load.- Author:
- James House
- See Also:
QuartzScheduler
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description intblockForAvailableThreads()Determines the number of threads that are currently available in in the pool.intgetPoolSize()Get the current number of threads in theThreadPool.voidinitialize()Must be called before theThreadPoolis used, in order to give the it a chance to initialize.booleanrunInThread(java.lang.Runnable runnable)Execute the givenin the next availableRunnableThread.voidsetInstanceId(java.lang.String schedInstId)Inform theThreadPoolof the Scheduler instance's Id, prior to initialize being invoked.voidsetInstanceName(java.lang.String schedName)Inform theThreadPoolof the Scheduler instance's name, prior to initialize being invoked.voidshutdown(boolean waitForJobsToComplete)Called by the QuartzScheduler to inform theThreadPoolthat it should free up all of it's resources because the scheduler is shutting down.
-
-
-
Method Detail
-
runInThread
boolean runInThread(java.lang.Runnable runnable)
Execute the given
in the next availableRunnableThread.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
falseshould be returned.- Returns:
- true, if the runnable was assigned to run on a Thread.
-
blockForAvailableThreads
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.
- Returns:
- the number of currently available threads
-
initialize
void initialize() throws SchedulerConfigExceptionMust be called before the
ThreadPoolis used, in order to give the it a chance to initialize.Typically called by the
SchedulerFactory.- Throws:
SchedulerConfigException
-
shutdown
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.
-
getPoolSize
int getPoolSize()
Get the current number of threads in the
ThreadPool.
-
setInstanceId
void setInstanceId(java.lang.String schedInstId)
Inform the
ThreadPoolof the Scheduler instance's Id, prior to initialize being invoked.- Since:
- 1.7
-
setInstanceName
void setInstanceName(java.lang.String schedName)
Inform the
ThreadPoolof the Scheduler instance's name, prior to initialize being invoked.- Since:
- 1.7
-
-