Class TransportFilter.QueuingExecutor
- java.lang.Object
-
- java.util.concurrent.AbstractExecutorService
-
- java.util.concurrent.ThreadPoolExecutor
-
- org.glassfish.jersey.jdk.connector.internal.TransportFilter.QueuingExecutor
-
- All Implemented Interfaces:
java.util.concurrent.Executor,java.util.concurrent.ExecutorService
- Enclosing class:
- TransportFilter
private static class TransportFilter.QueuingExecutor extends java.util.concurrent.ThreadPoolExecutorA thread pool executor that prefers creating new worker threads over queueing tasks until the maximum poll size has been reached, after which it will start queueing tasks.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classTransportFilter.QueuingExecutor.HandOffQueueSynchronous queue that tries to emptyTransportFilter.QueuingExecutor.HandOffQueue.taskQueuebefore it blocks waiting for new tasks to be submitted.-
Nested classes/interfaces inherited from class java.util.concurrent.ThreadPoolExecutor
java.util.concurrent.ThreadPoolExecutor.AbortPolicy, java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardPolicy
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Queue<java.lang.Runnable>taskQueueprivate booleanthreadSafeQueue
-
Constructor Summary
Constructors Constructor Description QueuingExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit, java.util.Queue<java.lang.Runnable> taskQueue, boolean threadSafeQueue, java.util.concurrent.ThreadFactory threadFactory)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidexecute(java.lang.Runnable task)Submit a task for execution, if the maximum thread limit has been reached and all the threads are occupied, enqueue the task.-
Methods inherited from class java.util.concurrent.ThreadPoolExecutor
afterExecute, allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, beforeExecute, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getQueue, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, shutdown, shutdownNow, terminated, toString
-
-
-
-
Constructor Detail
-
QueuingExecutor
QueuingExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit, java.util.Queue<java.lang.Runnable> taskQueue, boolean threadSafeQueue, java.util.concurrent.ThreadFactory threadFactory)Constructor.- Parameters:
threadSafeQueue- indicates iftaskQueueis thread safe or not.
-
-
Method Detail
-
execute
public void execute(java.lang.Runnable task)
Submit a task for execution, if the maximum thread limit has been reached and all the threads are occupied, enqueue the task. The task is not executed by the current thread, but by a thread from the thread pool.- Specified by:
executein interfacejava.util.concurrent.Executor- Overrides:
executein classjava.util.concurrent.ThreadPoolExecutor- Parameters:
task- to be executed.
-
-