Package io.helidon.common.configurable
Class ThreadPool
- java.lang.Object
-
- java.util.concurrent.AbstractExecutorService
-
- java.util.concurrent.ThreadPoolExecutor
-
- io.helidon.common.configurable.ThreadPool
-
- All Implemented Interfaces:
Executor,ExecutorService
public class ThreadPool extends ThreadPoolExecutor
AThreadPoolExecutorwith an extensible growth policy and queue state accessors.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classThreadPool.RejectionHandlerARejectedExecutionHandlerthat supports pool growth by re-attempting to add the task to the queue.-
Nested classes/interfaces inherited from class java.util.concurrent.ThreadPoolExecutor
ThreadPoolExecutor.AbortPolicy, ThreadPoolExecutor.CallerRunsPolicy, ThreadPoolExecutor.DiscardOldestPolicy, ThreadPoolExecutor.DiscardPolicy
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidafterExecute(Runnable r, Throwable t)static Optional<ThreadPool>asThreadPool(ExecutorService executor)Returns the given executor as aThreadPoolif possible.protected voidbeforeExecute(Thread t, Runnable r)intgetActiveThreads()Returns the current number of active threads.floatgetAverageActiveThreads()Returns the average number of active threads across the life of the pool.floatgetAverageQueueSize()Returns the average queue size.intgetCompletedTasks()Returns the number of completed tasks.intgetFailedTasks()Returns the number of tasks that threw an exception.StringgetName()Returns the name of this pool.intgetPeakQueueSize()Returns the peak queue size.io.helidon.common.configurable.ThreadPool.WorkQueuegetQueue()intgetQueueCapacity()Returns the queue capacity.intgetQueueSize()Returns the current number of tasks in the queue.ThreadPool.RejectionHandlergetRejectedExecutionHandler()intgetRejectionCount()Returns the rejection count.intgetTotalTasks()Returns the number of completed and failed tasks.booleanisFixedSize()Tests whether or not the number of threads can change over time.voidsetMaximumPoolSize(int maximumPoolSize)voidsetRejectedExecutionHandler(RejectedExecutionHandler handler)voidshutdown()StringtoString()-
Methods inherited from class java.util.concurrent.ThreadPoolExecutor
allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, execute, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setThreadFactory, shutdownNow, terminated
-
Methods inherited from class java.util.concurrent.AbstractExecutorService
invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor, submit, submit, submit
-
-
-
-
Method Detail
-
asThreadPool
public static Optional<ThreadPool> asThreadPool(ExecutorService executor)
Returns the given executor as aThreadPoolif possible.- Parameters:
executor- The executor.- Returns:
- The thread pool or empty if not a
ThreadPool.
-
getName
public String getName()
Returns the name of this pool.- Returns:
- The name.
-
getQueueCapacity
public int getQueueCapacity()
Returns the queue capacity.- Returns:
- The capacity.
-
getAverageQueueSize
public float getAverageQueueSize()
Returns the average queue size.- Returns:
- The size.
-
getPeakQueueSize
public int getPeakQueueSize()
Returns the peak queue size.- Returns:
- The size.
-
getCompletedTasks
public int getCompletedTasks()
Returns the number of completed tasks.- Returns:
- The count.
-
getFailedTasks
public int getFailedTasks()
Returns the number of tasks that threw an exception.- Returns:
- The count.
-
getTotalTasks
public int getTotalTasks()
Returns the number of completed and failed tasks.- Returns:
- The count.
-
getActiveThreads
public int getActiveThreads()
Returns the current number of active threads.- Returns:
- The count.
-
getAverageActiveThreads
public float getAverageActiveThreads()
Returns the average number of active threads across the life of the pool.- Returns:
- The average.
-
getRejectionCount
public int getRejectionCount()
Returns the rejection count.- Returns:
- The count.
-
isFixedSize
public boolean isFixedSize()
Tests whether or not the number of threads can change over time.- Returns:
trueif maximum size is equal to core size.
-
getQueue
public io.helidon.common.configurable.ThreadPool.WorkQueue getQueue()
- Overrides:
getQueuein classThreadPoolExecutor
-
getQueueSize
public int getQueueSize()
Returns the current number of tasks in the queue.- Returns:
- The count.
-
setRejectedExecutionHandler
public void setRejectedExecutionHandler(RejectedExecutionHandler handler)
- Overrides:
setRejectedExecutionHandlerin classThreadPoolExecutor
-
getRejectedExecutionHandler
public ThreadPool.RejectionHandler getRejectedExecutionHandler()
- Overrides:
getRejectedExecutionHandlerin classThreadPoolExecutor
-
setMaximumPoolSize
public void setMaximumPoolSize(int maximumPoolSize)
- Overrides:
setMaximumPoolSizein classThreadPoolExecutor
-
toString
public String toString()
- Overrides:
toStringin classThreadPoolExecutor
-
beforeExecute
protected void beforeExecute(Thread t, Runnable r)
- Overrides:
beforeExecutein classThreadPoolExecutor
-
afterExecute
protected void afterExecute(Runnable r, Throwable t)
- Overrides:
afterExecutein classThreadPoolExecutor
-
shutdown
public void shutdown()
- Specified by:
shutdownin interfaceExecutorService- Overrides:
shutdownin classThreadPoolExecutor
-
-