org.apache.ignite.thread

## Class IgniteThreadPoolExecutor

- java.lang.Object
- - java.util.concurrent.AbstractExecutorService
  - - java.util.concurrent.ThreadPoolExecutor
    - - org.apache.ignite.thread.IgniteThreadPoolExecutor

- All Implemented Interfaces:
    Executor, ExecutorService

      public class IgniteThreadPoolExecutor
      extends ThreadPoolExecutor

  An `ExecutorService` that executes submitted tasks using pooled grid threads.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class java.util.concurrent.ThreadPoolExecutor

      `ThreadPoolExecutor.AbortPolicy, ThreadPoolExecutor.CallerRunsPolicy, ThreadPoolExecutor.DiscardOldestPolicy, ThreadPoolExecutor.DiscardPolicy`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `IgniteThreadPoolExecutor(int corePoolSize, int maxPoolSize, long keepAliveTime, BlockingQueue<Runnable> workQ, ThreadFactory threadFactory)` Creates a new service with the given initial parameters.
    `IgniteThreadPoolExecutor(String threadNamePrefix, String igniteInstanceName, int corePoolSize, int maxPoolSize, long keepAliveTime, BlockingQueue<Runnable> workQ)` Creates a new service with the given initial parameters.
    `IgniteThreadPoolExecutor(String threadNamePrefix, String igniteInstanceName, int corePoolSize, int maxPoolSize, long keepAliveTime, BlockingQueue<Runnable> workQ, byte plc, Thread.UncaughtExceptionHandler eHnd)` Creates a new service with the given initial parameters.

  - ### Method Summary

    - ### Methods inherited from class java.util.concurrent.ThreadPoolExecutor

      `afterExecute, allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, beforeExecute, execute, 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`

    - ### Methods inherited from class java.util.concurrent.AbstractExecutorService

      `invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor, submit, submit, submit`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### IgniteThreadPoolExecutor

          public IgniteThreadPoolExecutor(String threadNamePrefix,
                                          String igniteInstanceName,
                                          int corePoolSize,
                                          int maxPoolSize,
                                          long keepAliveTime,
                                          BlockingQueue<Runnable> workQ)

      Creates a new service with the given initial parameters. NOTE: There is a known bug. If 'corePoolSize' equals `0`, then the pool will degrade to a single-threaded pool.
      Parameters:
        `threadNamePrefix` - Will be added at the beginning of all created threads.
        `igniteInstanceName` - Must be the name of the grid.
        `corePoolSize` - The number of threads to keep in the pool, even if they are idle.
        `maxPoolSize` - The maximum number of threads to allow in the pool.
        `keepAliveTime` - When the number of threads is greater than the core, this is the maximum time that excess idle threads will wait for new tasks before terminating.
        `workQ` - The queue to use for holding tasks before they are executed. This queue will hold only runnable tasks submitted by the `ThreadPoolExecutor.execute(Runnable)` method.

    - #### IgniteThreadPoolExecutor

          public IgniteThreadPoolExecutor(String threadNamePrefix,
                                          String igniteInstanceName,
                                          int corePoolSize,
                                          int maxPoolSize,
                                          long keepAliveTime,
                                          BlockingQueue<Runnable> workQ,
                                          byte plc,
                                          Thread.UncaughtExceptionHandler eHnd)

      Creates a new service with the given initial parameters. NOTE: There is a known bug. If 'corePoolSize' equals `0`, then the pool will degrade to a single-threaded pool.
      Parameters:
        `threadNamePrefix` - Will be added at the beginning of all created threads.
        `igniteInstanceName` - Must be the name of the grid.
        `corePoolSize` - The number of threads to keep in the pool, even if they are idle.
        `maxPoolSize` - The maximum number of threads to allow in the pool.
        `keepAliveTime` - When the number of threads is greater than the core, this is the maximum time that excess idle threads will wait for new tasks before terminating.
        `workQ` - The queue to use for holding tasks before they are executed. This queue will hold only runnable tasks submitted by the `ThreadPoolExecutor.execute(Runnable)` method.
        `plc` - `GridIoPolicy` for thread pool.
        `eHnd` - Uncaught exception handler for thread pool.

    - #### IgniteThreadPoolExecutor

          public IgniteThreadPoolExecutor(int corePoolSize,
                                          int maxPoolSize,
                                          long keepAliveTime,
                                          BlockingQueue<Runnable> workQ,
                                          ThreadFactory threadFactory)

      Creates a new service with the given initial parameters. NOTE: There is a known bug. If 'corePoolSize' equals `0`, then the pool will degrade to a single-threaded pool. *
      Parameters:
        `corePoolSize` - The number of threads to keep in the pool, even if they are idle.
        `maxPoolSize` - The maximum number of threads to allow in the pool.
        `keepAliveTime` - When the number of threads is greater than the core, this is the maximum time that excess idle threads will wait for new tasks before terminating.
        `workQ` - The queue to use for holding tasks before they are executed. This queue will hold only the runnable tasks submitted by the `ThreadPoolExecutor.execute(Runnable)` method.
        `threadFactory` - Thread factory.

2021 Copyright © Apache Software Foundation
| Follow @ApacheIgnite
Ignite Database and Caching Platform | : ver. 2.11.0
Release Date | : September 11 2021