org.quartz.simpl
Class SimpleThreadPool

java.lang.Object
  extended by org.quartz.simpl.SimpleThreadPool
All Implemented Interfaces:
org.quartz.spi.ThreadPool

public class SimpleThreadPool
extends java.lang.Object
implements org.quartz.spi.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 runInThread(Runnable) method, which blocks until a Thread becomes available.

The pool has a fixed number of Threads, and does not grow or shrink based on demand.

Author:
James House, Juergen Donnerstag

Constructor Summary
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.
 
Method Summary
 int blockForAvailableThreads()
           
protected  void clearFromBusyWorkersList(org.quartz.simpl.SimpleThreadPool.WorkerThread wt)
           
protected  java.util.List<org.quartz.simpl.SimpleThreadPool.WorkerThread> createWorkerThreads(int createCount)
           
 org.slf4j.Logger 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()
           
 boolean isMakeThreadsDaemons()
           
 boolean isThreadsInheritContextClassLoaderOfInitializingThread()
           
 boolean isThreadsInheritGroupOfInitializingThread()
           
protected  void makeAvailable(org.quartz.simpl.SimpleThreadPool.WorkerThread wt)
           
 boolean runInThread(java.lang.Runnable runnable)
           Run the given Runnable object in the next available Thread.
 void setInstanceId(java.lang.String schedInstId)
           
 void setInstanceName(java.lang.String schedName)
           
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleThreadPool

public SimpleThreadPool()

Create a new (unconfigured) SimpleThreadPool.

See Also:
setThreadCount(int), setThreadPriority(int)

SimpleThreadPool

public SimpleThreadPool(int threadCount,
                        int threadPriority)

Create a new SimpleThreadPool with the specified number of Thread s that have the given priority.

Parameters:
threadCount - the number of worker Threads in the pool, must be > 0.
threadPriority - the thread priority for the worker threads.
See Also:
Thread
Method Detail

getLog

public org.slf4j.Logger getLog()

getPoolSize

public int getPoolSize()
Specified by:
getPoolSize in interface org.quartz.spi.ThreadPool

setThreadCount

public void setThreadCount(int count)

Set the number of worker threads in the pool - has no effect after initialize() 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 after initialize() has been called.


getThreadPriority

public int getThreadPriority()

Get the thread priority of worker threads in the pool.


setThreadNamePrefix

public void setThreadNamePrefix(java.lang.String prfx)

getThreadNamePrefix

public java.lang.String 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

public void setInstanceId(java.lang.String schedInstId)
Specified by:
setInstanceId in interface org.quartz.spi.ThreadPool

setInstanceName

public void setInstanceName(java.lang.String schedName)
Specified by:
setInstanceName in interface org.quartz.spi.ThreadPool

initialize

public void initialize()
                throws SchedulerConfigException
Specified by:
initialize in interface org.quartz.spi.ThreadPool
Throws:
SchedulerConfigException

createWorkerThreads

protected java.util.List<org.quartz.simpl.SimpleThreadPool.WorkerThread> createWorkerThreads(int createCount)

shutdown

public void shutdown()

Terminate any worker threads in this thread group.

Jobs currently in progress will complete.


shutdown

public void shutdown(boolean waitForJobsToComplete)

Terminate any worker threads in this thread group.

Jobs currently in progress will complete.

Specified by:
shutdown in interface org.quartz.spi.ThreadPool

runInThread

public 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.

Specified by:
runInThread in interface org.quartz.spi.ThreadPool
Parameters:
runnable - the Runnable to be added.

blockForAvailableThreads

public int blockForAvailableThreads()
Specified by:
blockForAvailableThreads in interface org.quartz.spi.ThreadPool

makeAvailable

protected void makeAvailable(org.quartz.simpl.SimpleThreadPool.WorkerThread wt)

clearFromBusyWorkersList

protected void clearFromBusyWorkersList(org.quartz.simpl.SimpleThreadPool.WorkerThread wt)


Copyright 2001-2011, Terracotta, Inc.