# Class ScheduledThreadPoolExecutor

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

All Implemented Interfaces:
  `AutoCloseable, Executor, ExecutorService, ScheduledExecutorService`

public class ScheduledThreadPoolExecutor extends Object implements ScheduledExecutorService
Class which wraps a ScheduledExecutorService, while preventing lifecycle and configuration operations.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final ScheduledExecutorService`
  `executor`
  The wrapped ScheduledExecutorService instance.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ScheduledThreadPoolExecutor(ScheduledExecutorService executor)`
  Builds a wrapper for the given executor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `awaitTermination(long timeout, TimeUnit unit)`
  `void`
  `execute(Runnable command)`
  `<T> List<Future<T>>`
  `invokeAll(Collection<? extends Callable<T>> tasks)`
  `<T> List<Future<T>>`
  `invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)`
  `<T> T`
  `invokeAny(Collection<? extends Callable<T>> tasks)`
  `<T> T`
  `invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)`
  `boolean`
  `isShutdown()`
  `boolean`
  `isTerminated()`
  `ScheduledFuture<?>`
  `schedule(Runnable command, long delay, TimeUnit unit)`
  `<V> ScheduledFuture<V>`
  `schedule(Callable<V> callable, long delay, TimeUnit unit)`
  `ScheduledFuture<?>`
  `scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)`
  `ScheduledFuture<?>`
  `scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)`
  `void`
  `shutdown()`
  `List<Runnable>`
  `shutdownNow()`
  `Future<?>`
  `submit(Runnable task)`
  `<T> Future<T>`
  `submit(Runnable task, T result)`
  `<T> Future<T>`
  `submit(Callable<T> task)`

  ### Methods inherited from class Object

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

  ### Methods inherited from interface ExecutorService

  `close`

- ## Field Details

  - ### executor

    protected final ScheduledExecutorService executor
    The wrapped ScheduledExecutorService instance.

- ## Constructor Details

  - ### ScheduledThreadPoolExecutor

    public ScheduledThreadPoolExecutor(ScheduledExecutorService executor)
    Builds a wrapper for the given executor.
    Parameters:
      `executor` - the wrapped executor

- ## Method Details

  - ### shutdown

    public void shutdown()
    Specified by:
      `shutdown` in interface `ExecutorService`

  - ### shutdownNow

    public List<Runnable> shutdownNow()
    Specified by:
      `shutdownNow` in interface `ExecutorService`

  - ### isShutdown

    public boolean isShutdown()
    Specified by:
      `isShutdown` in interface `ExecutorService`

  - ### isTerminated

    public boolean isTerminated()
    Specified by:
      `isTerminated` in interface `ExecutorService`

  - ### awaitTermination

    public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException
    Specified by:
      `awaitTermination` in interface `ExecutorService`
    Throws:
      `InterruptedException`

  - ### submit

    public <T> Future<T> submit(Callable<T> task)
    Specified by:
      `submit` in interface `ExecutorService`

  - ### submit

    public <T> Future<T> submit(Runnable task, T result)
    Specified by:
      `submit` in interface `ExecutorService`

  - ### submit

    public Future<?> submit(Runnable task)
    Specified by:
      `submit` in interface `ExecutorService`

  - ### invokeAll

    public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException
    Specified by:
      `invokeAll` in interface `ExecutorService`
    Throws:
      `InterruptedException`

  - ### invokeAll

    public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException
    Specified by:
      `invokeAll` in interface `ExecutorService`
    Throws:
      `InterruptedException`

  - ### invokeAny

    public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException
    Specified by:
      `invokeAny` in interface `ExecutorService`
    Throws:
      `InterruptedException`
      `ExecutionException`

  - ### invokeAny

    public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
    Specified by:
      `invokeAny` in interface `ExecutorService`
    Throws:
      `InterruptedException`
      `ExecutionException`
      `TimeoutException`

  - ### execute

    public void execute(Runnable command)
    Specified by:
      `execute` in interface `Executor`

  - ### schedule

    public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit)
    Specified by:
      `schedule` in interface `ScheduledExecutorService`

  - ### schedule

    public <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit)
    Specified by:
      `schedule` in interface `ScheduledExecutorService`

  - ### scheduleAtFixedRate

    public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
    Specified by:
      `scheduleAtFixedRate` in interface `ScheduledExecutorService`

  - ### scheduleWithFixedDelay

    public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)
    Specified by:
      `scheduleWithFixedDelay` in interface `ScheduledExecutorService`