# 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`

## 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

## 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`