# Uses of Interface
java.util.concurrent.ExecutorService

Packages that use ExecutorService
Package | Description
--- | ---
java.nio.channels | Defines channels, which represent connections to entities that are capable of performing I/O operations, such as files and sockets; defines selectors, for multiplexed, non-blocking I/O operations.
java.nio.channels.spi | Service-provider classes for the `java.nio.channels` package.
java.nio.file.spi | Service-provider classes for the `java.nio.file` package.
java.util.concurrent | Utility classes commonly useful in concurrent programming.

## Uses of ExecutorService in java.nio.channels

Methods in java.nio.channels with parameters of type ExecutorService
Modifier and Type | Method | Description
--- | --- | ---
`static AsynchronousFileChannel` | AsynchronousFileChannel.`open​(Path file, Set<? extends OpenOption> options, ExecutorService executor, FileAttribute<?>... attrs)` | Opens or creates a file for reading and/or writing, returning an asynchronous file channel to access the file.
`static AsynchronousChannelGroup` | AsynchronousChannelGroup.`withCachedThreadPool​(ExecutorService executor, int initialSize)` | Creates an asynchronous channel group with a given thread pool that creates new threads as needed.
`static AsynchronousChannelGroup` | AsynchronousChannelGroup.`withThreadPool​(ExecutorService executor)` | Creates an asynchronous channel group with a given thread pool.

## Uses of ExecutorService in java.nio.channels.spi

Methods in java.nio.channels.spi with parameters of type ExecutorService
Modifier and Type | Method | Description
--- | --- | ---
`abstract AsynchronousChannelGroup` | AsynchronousChannelProvider.`openAsynchronousChannelGroup​(ExecutorService executor, int initialSize)` | Constructs a new asynchronous channel group with the given thread pool.

## Uses of ExecutorService in java.nio.file.spi

Methods in java.nio.file.spi with parameters of type ExecutorService
Modifier and Type | Method | Description
--- | --- | ---
`AsynchronousFileChannel` | FileSystemProvider.`newAsynchronousFileChannel​(Path path, Set<? extends OpenOption> options, ExecutorService executor, FileAttribute<?>... attrs)` | Opens or creates a file for reading and/or writing, returning an asynchronous file channel to access the file.

## Uses of ExecutorService in java.util.concurrent

Subinterfaces of ExecutorService in java.util.concurrent
Modifier and Type | Interface | Description
--- | --- | ---
`interface` | `ScheduledExecutorService` | An `ExecutorService` that can schedule commands to run after a given delay, or to execute periodically.

Classes in java.util.concurrent that implement ExecutorService
Modifier and Type | Class | Description
--- | --- | ---
`class` | `AbstractExecutorService` | Provides default implementations of `ExecutorService` execution methods.
`class` | `ForkJoinPool` | An `ExecutorService` for running `ForkJoinTask`s.
`class` | `ScheduledThreadPoolExecutor` | A `ThreadPoolExecutor` that can additionally schedule commands to run after a given delay, or to execute periodically.
`class` | `ThreadPoolExecutor` | An `ExecutorService` that executes each submitted task using one of possibly several pooled threads, normally configured using `Executors` factory methods.

Methods in java.util.concurrent that return ExecutorService
Modifier and Type | Method | Description
--- | --- | ---
`static ExecutorService` | Executors.`newCachedThreadPool()` | Creates a thread pool that creates new threads as needed, but will reuse previously constructed threads when they are available.
`static ExecutorService` | Executors.`newCachedThreadPool​(ThreadFactory threadFactory)` | Creates a thread pool that creates new threads as needed, but will reuse previously constructed threads when they are available, and uses the provided ThreadFactory to create new threads when needed.
`static ExecutorService` | Executors.`newFixedThreadPool​(int nThreads)` | Creates a thread pool that reuses a fixed number of threads operating off a shared unbounded queue.
`static ExecutorService` | Executors.`newFixedThreadPool​(int nThreads, ThreadFactory threadFactory)` | Creates a thread pool that reuses a fixed number of threads operating off a shared unbounded queue, using the provided ThreadFactory to create new threads when needed.
`static ExecutorService` | Executors.`newSingleThreadExecutor()` | Creates an Executor that uses a single worker thread operating off an unbounded queue.
`static ExecutorService` | Executors.`newSingleThreadExecutor​(ThreadFactory threadFactory)` | Creates an Executor that uses a single worker thread operating off an unbounded queue, and uses the provided ThreadFactory to create a new thread when needed.
`static ExecutorService` | Executors.`newWorkStealingPool()` | Creates a work-stealing thread pool using the number of available processors as its target parallelism level.
`static ExecutorService` | Executors.`newWorkStealingPool​(int parallelism)` | Creates a thread pool that maintains enough threads to support the given parallelism level, and may use multiple queues to reduce contention.
`static ExecutorService` | Executors.`unconfigurableExecutorService​(ExecutorService executor)` | Returns an object that delegates all defined `ExecutorService` methods to the given executor, but not any other methods that might otherwise be accessible using casts.

Methods in java.util.concurrent with parameters of type ExecutorService
Modifier and Type | Method | Description
--- | --- | ---
`static ExecutorService` | Executors.`unconfigurableExecutorService​(ExecutorService executor)` | Returns an object that delegates all defined `ExecutorService` methods to the given executor, but not any other methods that might otherwise be accessible using casts.