public class ThreadPoolExecutor extends AbstractExecutorService

An ExecutorService that executes each submitted task using one of possibly several pooled threads, normally configured using Executors factory methods.

Thread pools address two different problems: they usually provide improved performance when executing large numbers of asynchronous tasks, due to reduced per-task invocation overhead, and they provide a means of bounding and managing the resources, including threads, consumed when executing a collection of tasks. Each ThreadPoolExecutor also maintains some basic statistics, such as the number of completed tasks.[1]

Programmers can configure the creation for a thread pool using ThreadPoolExecutor constructor. The following parameters can be configure:

  • corePoolSize: This value (core pool size) tells how many threads will be created before implementation (execution policy) starts looking for existing free thread.
  • maximumPoolSize: The maximum pool size is the upper bound on how many pool threads can be active at once.
  • keepAliveTime: If the pool has more than corePoolSize threads and there are more tasks to execute then implementation (execution policy) will terminate all excess threads (maximumPoolSize – coreThreadSize) which are idle for more than keepAliveTime.
  • workQueue: This is a BlockingQueue used for holding tasks awaiting execution. There is direct relation between work queue and pool sizing.


Need More Help?


More Examples on Java

Java Threads

Packages in Java

Advanced Topics In Java

Synchronization In Java

Synchronization Problems

Java Certification

Debugging in Java

Special Discounts for Students


Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.