Package org.apache.tomcat.util.threads

## Class ScheduledThreadPoolExecutor

- java.lang.Object
- - org.apache.tomcat.util.threads.ScheduledThreadPoolExecutor

- All Implemented Interfaces:
    `java.util.concurrent.Executor`, `java.util.concurrent.ExecutorService`, `java.util.concurrent.ScheduledExecutorService`

      public class ScheduledThreadPoolExecutor
      extends java.lang.Object
      implements java.util.concurrent.ScheduledExecutorService

  Class which wraps a ScheduledExecutorService, while preventing lifecycle and configuration operations.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected java.util.concurrent.ScheduledExecutorService` | `executor` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ScheduledThreadPoolExecutor​(java.util.concurrent.ScheduledExecutorService executor)` | Builds a wrapper for the given executor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `awaitTermination​(long timeout, java.util.concurrent.TimeUnit unit)` |
    `void` | `execute​(java.lang.Runnable command)` |
    `<T> java.util.List<java.util.concurrent.Future<T>>` | `invokeAll​(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks)` |
    `<T> java.util.List<java.util.concurrent.Future<T>>` | `invokeAll​(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks, long timeout, java.util.concurrent.TimeUnit unit)` |
    `<T> T` | `invokeAny​(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks)` |
    `<T> T` | `invokeAny​(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks, long timeout, java.util.concurrent.TimeUnit unit)` |
    `boolean` | `isShutdown()` |
    `boolean` | `isTerminated()` |
    `java.util.concurrent.ScheduledFuture<?>` | `schedule​(java.lang.Runnable command, long delay, java.util.concurrent.TimeUnit unit)` |
    `<V> java.util.concurrent.ScheduledFuture<V>` | `schedule​(java.util.concurrent.Callable<V> callable, long delay, java.util.concurrent.TimeUnit unit)` |
    `java.util.concurrent.ScheduledFuture<?>` | `scheduleAtFixedRate​(java.lang.Runnable command, long initialDelay, long period, java.util.concurrent.TimeUnit unit)` |
    `java.util.concurrent.ScheduledFuture<?>` | `scheduleWithFixedDelay​(java.lang.Runnable command, long initialDelay, long delay, java.util.concurrent.TimeUnit unit)` |
    `void` | `shutdown()` |
    `java.util.List<java.lang.Runnable>` | `shutdownNow()` |
    `java.util.concurrent.Future<?>` | `submit​(java.lang.Runnable task)` |
    `<T> java.util.concurrent.Future<T>` | `submit​(java.lang.Runnable task, T result)` |
    `<T> java.util.concurrent.Future<T>` | `submit​(java.util.concurrent.Callable<T> task)` |

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

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

- - ### Field Detail

    - #### executor

          protected final java.util.concurrent.ScheduledExecutorService executor

  - ### Constructor Detail

    - #### ScheduledThreadPoolExecutor

          public ScheduledThreadPoolExecutor​(java.util.concurrent.ScheduledExecutorService executor)

      Builds a wrapper for the given executor.
      Parameters:
        `executor` - the wrapped executor

  - ### Method Detail

    - #### shutdown

          public void shutdown()

      Specified by:
        `shutdown` in interface `java.util.concurrent.ExecutorService`

    - #### shutdownNow

          public java.util.List<java.lang.Runnable> shutdownNow()

      Specified by:
        `shutdownNow` in interface `java.util.concurrent.ExecutorService`

    - #### isShutdown

          public boolean isShutdown()

      Specified by:
        `isShutdown` in interface `java.util.concurrent.ExecutorService`

    - #### isTerminated

          public boolean isTerminated()

      Specified by:
        `isTerminated` in interface `java.util.concurrent.ExecutorService`

    - #### awaitTermination

          public boolean awaitTermination​(long timeout,
                                          java.util.concurrent.TimeUnit unit)
                                   throws java.lang.InterruptedException

      Specified by:
        `awaitTermination` in interface `java.util.concurrent.ExecutorService`
      Throws:
        `java.lang.InterruptedException`

    - #### submit

          public <T> java.util.concurrent.Future<T> submit​(java.util.concurrent.Callable<T> task)

      Specified by:
        `submit` in interface `java.util.concurrent.ExecutorService`

    - #### submit

          public <T> java.util.concurrent.Future<T> submit​(java.lang.Runnable task,
                                                           T result)

      Specified by:
        `submit` in interface `java.util.concurrent.ExecutorService`

    - #### submit

          public java.util.concurrent.Future<?> submit​(java.lang.Runnable task)

      Specified by:
        `submit` in interface `java.util.concurrent.ExecutorService`

    - #### invokeAll

          public <T> java.util.List<java.util.concurrent.Future<T>> invokeAll​(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks)
                                                                       throws java.lang.InterruptedException

      Specified by:
        `invokeAll` in interface `java.util.concurrent.ExecutorService`
      Throws:
        `java.lang.InterruptedException`

    - #### invokeAll

          public <T> java.util.List<java.util.concurrent.Future<T>> invokeAll​(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks,
                                                                              long timeout,
                                                                              java.util.concurrent.TimeUnit unit)
                                                                       throws java.lang.InterruptedException

      Specified by:
        `invokeAll` in interface `java.util.concurrent.ExecutorService`
      Throws:
        `java.lang.InterruptedException`

    - #### invokeAny

          public <T> T invokeAny​(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks)
                          throws java.lang.InterruptedException,
                                 java.util.concurrent.ExecutionException

      Specified by:
        `invokeAny` in interface `java.util.concurrent.ExecutorService`
      Throws:
        `java.lang.InterruptedException`
        `java.util.concurrent.ExecutionException`

    - #### invokeAny

          public <T> T invokeAny​(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks,
                                 long timeout,
                                 java.util.concurrent.TimeUnit unit)
                          throws java.lang.InterruptedException,
                                 java.util.concurrent.ExecutionException,
                                 java.util.concurrent.TimeoutException

      Specified by:
        `invokeAny` in interface `java.util.concurrent.ExecutorService`
      Throws:
        `java.lang.InterruptedException`
        `java.util.concurrent.ExecutionException`
        `java.util.concurrent.TimeoutException`

    - #### execute

          public void execute​(java.lang.Runnable command)

      Specified by:
        `execute` in interface `java.util.concurrent.Executor`

    - #### schedule

          public java.util.concurrent.ScheduledFuture<?> schedule​(java.lang.Runnable command,
                                                                  long delay,
                                                                  java.util.concurrent.TimeUnit unit)

      Specified by:
        `schedule` in interface `java.util.concurrent.ScheduledExecutorService`

    - #### schedule

          public <V> java.util.concurrent.ScheduledFuture<V> schedule​(java.util.concurrent.Callable<V> callable,
                                                                      long delay,
                                                                      java.util.concurrent.TimeUnit unit)

      Specified by:
        `schedule` in interface `java.util.concurrent.ScheduledExecutorService`

    - #### scheduleAtFixedRate

          public java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate​(java.lang.Runnable command,
                                                                             long initialDelay,
                                                                             long period,
                                                                             java.util.concurrent.TimeUnit unit)

      Specified by:
        `scheduleAtFixedRate` in interface `java.util.concurrent.ScheduledExecutorService`

    - #### scheduleWithFixedDelay

          public java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay​(java.lang.Runnable command,
                                                                                long initialDelay,
                                                                                long delay,
                                                                                java.util.concurrent.TimeUnit unit)

      Specified by:
        `scheduleWithFixedDelay` in interface `java.util.concurrent.ScheduledExecutorService`