# 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.`newThreadPerTaskExecutor(ThreadFactory threadFactory)`
  Preview.
  Creates an Executor that starts a new Thread for each task.
  `static ExecutorService`
  Executors.`newVirtualThreadPerTaskExecutor()`
  Preview.
  Creates an Executor that starts a new virtual Thread for each task.
  `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.