Class ScalingThreadPoolExecutor

  • All Implemented Interfaces:
    java.util.concurrent.Executor, java.util.concurrent.ExecutorService, ExecutorServiceEx

    public class ScalingThreadPoolExecutor
    extends TeamCityThreadPoolExecutor
    implements ExecutorServiceEx
    Thread pool executor with minimum and maximum threads and maximum capacity of input queue.

    Inspired by http://www.kimchy.org/juc-executorservice-gotcha/ (thanks to kir for pointing)

    Author:
    Sergey.Anchipolevsky Date: 10.07.2009
    • Nested Class Summary

      • 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
    • Constructor Summary

      Constructors 
      Constructor Description
      ScalingThreadPoolExecutor​(int corePoolSize, int maximumPoolSize, int maximumQueueCapacity, long keepAliveTime, java.util.concurrent.TimeUnit unit, NamedThreadFactory threadFactory)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void afterExecute​(java.lang.Runnable r, java.lang.Throwable t)  
      protected void beforeExecute​(java.lang.Thread t, java.lang.Runnable r)  
      int getActiveCount()  
      • Methods inherited from class java.util.concurrent.ThreadPoolExecutor

        allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, execute, finalize, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getQueue, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, shutdownNow, terminated, toString
      • Methods inherited from class java.util.concurrent.AbstractExecutorService

        invokeAll, invokeAll, invokeAny, invokeAny, submit, submit, submit
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.concurrent.Executor

        execute
      • Methods inherited from interface java.util.concurrent.ExecutorService

        awaitTermination, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isTerminated, shutdown, shutdownNow, submit, submit, submit
    • Constructor Detail

      • ScalingThreadPoolExecutor

        public ScalingThreadPoolExecutor​(int corePoolSize,
                                         int maximumPoolSize,
                                         int maximumQueueCapacity,
                                         long keepAliveTime,
                                         java.util.concurrent.TimeUnit unit,
                                         NamedThreadFactory threadFactory)