Package org.eclipse.jetty.util.thread
Class ExecutorThreadPool
- java.lang.Object
-
- org.eclipse.jetty.util.component.AbstractLifeCycle
-
- org.eclipse.jetty.util.component.ContainerLifeCycle
-
- org.eclipse.jetty.util.thread.ExecutorThreadPool
-
- All Implemented Interfaces:
java.util.concurrent.Executor
,Container
,Destroyable
,Dumpable
,LifeCycle
,ThreadPool
,ThreadPool.SizedThreadPool
,TryExecutor
- Direct Known Subclasses:
ExecutorSizedThreadPool
@ManagedObject("A thread pool") public class ExecutorThreadPool extends ContainerLifeCycle implements ThreadPool.SizedThreadPool, TryExecutor
AThreadPool.SizedThreadPool
wrapper aroundThreadPoolExecutor
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
Container.InheritedListener, Container.Listener
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
LifeCycle.Listener
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.thread.ThreadPool
ThreadPool.SizedThreadPool
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.thread.TryExecutor
TryExecutor.NoTryExecutor
-
-
Field Summary
-
Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
FAILED, RUNNING, STARTED, STARTING, STOPPED, STOPPING
-
Fields inherited from interface org.eclipse.jetty.util.thread.TryExecutor
NO_TRY
-
-
Constructor Summary
Constructors Constructor Description ExecutorThreadPool()
ExecutorThreadPool(int maxThreads)
ExecutorThreadPool(int maxThreads, int minThreads)
ExecutorThreadPool(int maxThreads, int minThreads, java.util.concurrent.BlockingQueue<java.lang.Runnable> queue)
ExecutorThreadPool(java.util.concurrent.ThreadPoolExecutor executor)
ExecutorThreadPool(java.util.concurrent.ThreadPoolExecutor executor, int reservedThreads)
ExecutorThreadPool(java.util.concurrent.ThreadPoolExecutor executor, int reservedThreads, java.lang.ThreadGroup group)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
dump(java.lang.Appendable out, java.lang.String indent)
Dump this object (and children) into an Appendable using the provided indent after any new lines.void
execute(java.lang.Runnable command)
int
getIdleThreads()
int
getIdleTimeout()
int
getMaxThreads()
int
getMinThreads()
java.lang.String
getName()
int
getReservedThreads()
ThreadPoolBudget
getThreadPoolBudget()
int
getThreads()
int
getThreadsPriority()
boolean
isDaemon()
boolean
isDetailedDump()
boolean
isLowOnThreads()
void
join()
Blocks until the thread pool isstopped
.void
setDaemon(boolean daemon)
void
setDetailedDump(boolean detailedDump)
void
setIdleTimeout(int idleTimeout)
Sets the maximum thread idle time in ms.void
setMaxThreads(int threads)
void
setMinThreads(int threads)
void
setName(java.lang.String name)
void
setReservedThreads(int reservedThreads)
Sets the number of reserved threads.void
setThreadsPriority(int priority)
java.lang.String
toString()
boolean
tryExecute(java.lang.Runnable task)
Attempt to execute a task.-
Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, destroy, dump, dump, dump, dump, dumpObject, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, setStopTimeout, unmanage, updateBean, updateBean, updateBeans
-
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
-
-
-
-
Constructor Detail
-
ExecutorThreadPool
public ExecutorThreadPool()
-
ExecutorThreadPool
public ExecutorThreadPool(int maxThreads)
-
ExecutorThreadPool
public ExecutorThreadPool(int maxThreads, int minThreads)
-
ExecutorThreadPool
public ExecutorThreadPool(int maxThreads, int minThreads, java.util.concurrent.BlockingQueue<java.lang.Runnable> queue)
-
ExecutorThreadPool
public ExecutorThreadPool(java.util.concurrent.ThreadPoolExecutor executor)
-
ExecutorThreadPool
public ExecutorThreadPool(java.util.concurrent.ThreadPoolExecutor executor, int reservedThreads)
-
ExecutorThreadPool
public ExecutorThreadPool(java.util.concurrent.ThreadPoolExecutor executor, int reservedThreads, java.lang.ThreadGroup group)
-
-
Method Detail
-
getName
@ManagedAttribute("name of this thread pool") public java.lang.String getName()
- Returns:
- the name of the this thread pool
-
setName
public void setName(java.lang.String name)
- Parameters:
name
- the name of this thread pool, used to name threads
-
getMinThreads
@ManagedAttribute("minimum number of threads in the pool") public int getMinThreads()
- Specified by:
getMinThreads
in interfaceThreadPool.SizedThreadPool
- Returns:
- the minimum number of threads
-
setMinThreads
public void setMinThreads(int threads)
- Specified by:
setMinThreads
in interfaceThreadPool.SizedThreadPool
- Parameters:
threads
- the minimum number of threads
-
getMaxThreads
@ManagedAttribute("maximum number of threads in the pool") public int getMaxThreads()
- Specified by:
getMaxThreads
in interfaceThreadPool.SizedThreadPool
- Returns:
- the maximum number of threads
-
setMaxThreads
public void setMaxThreads(int threads)
- Specified by:
setMaxThreads
in interfaceThreadPool.SizedThreadPool
- Parameters:
threads
- the maximum number of threads
-
getIdleTimeout
@ManagedAttribute("maximum time a thread may be idle in ms") public int getIdleTimeout()
- Returns:
- the maximum thread idle time in ms.
- See Also:
setIdleTimeout(int)
-
setIdleTimeout
public void setIdleTimeout(int idleTimeout)
Sets the maximum thread idle time in ms.
Threads that are idle for longer than this period may be stopped.
- Parameters:
idleTimeout
- the maximum thread idle time in ms.- See Also:
getIdleTimeout()
-
getReservedThreads
@ManagedAttribute("the number of reserved threads in the pool") public int getReservedThreads()
- Returns:
- number of reserved threads or -1 to indicate that the number is heuristically determined
- See Also:
setReservedThreads(int)
-
setReservedThreads
public void setReservedThreads(int reservedThreads)
Sets the number of reserved threads.- Parameters:
reservedThreads
- number of reserved threads or -1 to determine the number heuristically- See Also:
getReservedThreads()
-
setThreadsPriority
public void setThreadsPriority(int priority)
-
getThreadsPriority
public int getThreadsPriority()
-
isDaemon
@ManagedAttribute("whether this thread pool uses daemon threads") public boolean isDaemon()
- Returns:
- whether this thread pool uses daemon threads
- See Also:
setDaemon(boolean)
-
setDaemon
public void setDaemon(boolean daemon)
- Parameters:
daemon
- whether this thread pool uses daemon threads- See Also:
Thread.setDaemon(boolean)
-
isDetailedDump
@ManagedAttribute("reports additional details in the dump") public boolean isDetailedDump()
-
setDetailedDump
public void setDetailedDump(boolean detailedDump)
-
getThreads
@ManagedAttribute("number of threads in the pool") public int getThreads()
- Specified by:
getThreads
in interfaceThreadPool
- Returns:
- The total number of threads currently in the pool
-
getIdleThreads
@ManagedAttribute("number of idle threads in the pool") public int getIdleThreads()
- Specified by:
getIdleThreads
in interfaceThreadPool
- Returns:
- The number of idle threads in the pool
-
execute
public void execute(java.lang.Runnable command)
- Specified by:
execute
in interfacejava.util.concurrent.Executor
- Specified by:
execute
in interfaceTryExecutor
-
tryExecute
public boolean tryExecute(java.lang.Runnable task)
Description copied from interface:TryExecutor
Attempt to execute a task.- Specified by:
tryExecute
in interfaceTryExecutor
- Parameters:
task
- The task to be executed- Returns:
- True IFF the task has been given directly to a thread to execute. The task cannot be queued pending the later availability of a Thread.
-
isLowOnThreads
@ManagedAttribute(value="thread pool is low on threads", readonly=true) public boolean isLowOnThreads()
- Specified by:
isLowOnThreads
in interfaceThreadPool
- Returns:
- True if the pool is low on threads
-
join
public void join() throws java.lang.InterruptedException
Description copied from interface:ThreadPool
Blocks until the thread pool isstopped
.- Specified by:
join
in interfaceThreadPool
- Throws:
java.lang.InterruptedException
- if thread was interrupted
-
getThreadPoolBudget
public ThreadPoolBudget getThreadPoolBudget()
- Specified by:
getThreadPoolBudget
in interfaceThreadPool.SizedThreadPool
- Returns:
- a ThreadPoolBudget for this sized thread pool, or null of no ThreadPoolBudget can be returned
-
dump
public void dump(java.lang.Appendable out, java.lang.String indent) throws java.io.IOException
Description copied from interface:Dumpable
Dump this object (and children) into an Appendable using the provided indent after any new lines. The indent should not be applied to the first object dumped.- Specified by:
dump
in interfaceDumpable
- Overrides:
dump
in classContainerLifeCycle
- Parameters:
out
- The appendable to dump toindent
- The indent to apply after any new lines.- Throws:
java.io.IOException
- if unable to write to Appendable
-
toString
public java.lang.String toString()
- Overrides:
toString
in classAbstractLifeCycle
-
-