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
AThreadPoolExecutor
with an extensible growth policy and queue state accessors.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ThreadPool.RejectionHandler
ARejectedExecutionHandler
that 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 void
afterExecute(Runnable r, Throwable t)
static Optional<ThreadPool>
asThreadPool(ExecutorService executor)
Returns the given executor as aThreadPool
if possible.protected void
beforeExecute(Thread t, Runnable r)
int
getActiveThreads()
Returns the current number of active threads.float
getAverageActiveThreads()
Returns the average number of active threads across the life of the pool.float
getAverageQueueSize()
Returns the average queue size.int
getCompletedTasks()
Returns the number of completed tasks.int
getFailedTasks()
Returns the number of tasks that threw an exception.String
getName()
Returns the name of this pool.int
getPeakQueueSize()
Returns the peak queue size.io.helidon.common.configurable.ThreadPool.WorkQueue
getQueue()
int
getQueueCapacity()
Returns the queue capacity.int
getQueueSize()
Returns the current number of tasks in the queue.ThreadPool.RejectionHandler
getRejectedExecutionHandler()
int
getRejectionCount()
Returns the rejection count.int
getTotalTasks()
Returns the number of completed and failed tasks.boolean
isFixedSize()
Tests whether or not the number of threads can change over time.void
setMaximumPoolSize(int maximumPoolSize)
void
setRejectedExecutionHandler(RejectedExecutionHandler handler)
void
shutdown()
String
toString()
-
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 aThreadPool
if 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:
true
if maximum size is equal to core size.
-
getQueue
public io.helidon.common.configurable.ThreadPool.WorkQueue getQueue()
- Overrides:
getQueue
in classThreadPoolExecutor
-
getQueueSize
public int getQueueSize()
Returns the current number of tasks in the queue.- Returns:
- The count.
-
setRejectedExecutionHandler
public void setRejectedExecutionHandler(RejectedExecutionHandler handler)
- Overrides:
setRejectedExecutionHandler
in classThreadPoolExecutor
-
getRejectedExecutionHandler
public ThreadPool.RejectionHandler getRejectedExecutionHandler()
- Overrides:
getRejectedExecutionHandler
in classThreadPoolExecutor
-
setMaximumPoolSize
public void setMaximumPoolSize(int maximumPoolSize)
- Overrides:
setMaximumPoolSize
in classThreadPoolExecutor
-
toString
public String toString()
- Overrides:
toString
in classThreadPoolExecutor
-
beforeExecute
protected void beforeExecute(Thread t, Runnable r)
- Overrides:
beforeExecute
in classThreadPoolExecutor
-
afterExecute
protected void afterExecute(Runnable r, Throwable t)
- Overrides:
afterExecute
in classThreadPoolExecutor
-
shutdown
public void shutdown()
- Specified by:
shutdown
in interfaceExecutorService
- Overrides:
shutdown
in classThreadPoolExecutor
-
-