Uses of Interface java.util.concurrent.ThreadFactory (Java Platform SE 8 )
Date: 2026-06-25

## Uses of Interface
java.util.concurrent.ThreadFactory

- Packages that use ThreadFactory
  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.util.concurrent | Utility classes commonly useful in concurrent programming.

- - ### Uses of ThreadFactory in java.nio.channels

    Methods in java.nio.channels with parameters of type ThreadFactory
    Modifier and Type | Method and Description
    --- | ---
    `static AsynchronousChannelGroup` | AsynchronousChannelGroup.`withFixedThreadPool(int nThreads, ThreadFactory threadFactory)` Creates an asynchronous channel group with a fixed thread pool.

  - ### Uses of ThreadFactory in java.nio.channels.spi

    Methods in java.nio.channels.spi with parameters of type ThreadFactory
    Modifier and Type | Method and Description
    --- | ---
    `abstract AsynchronousChannelGroup` | AsynchronousChannelProvider.`openAsynchronousChannelGroup(int nThreads, ThreadFactory threadFactory)` Constructs a new asynchronous channel group with a fixed thread pool.

  - ### Uses of ThreadFactory in java.util.concurrent

    Methods in java.util.concurrent that return ThreadFactory
    Modifier and Type | Method and Description
    --- | ---
    `static ThreadFactory` | Executors.`defaultThreadFactory()` Returns a default thread factory used to create new threads.
    `ThreadFactory` | ThreadPoolExecutor.`getThreadFactory()` Returns the thread factory used to create new threads.
    `static ThreadFactory` | Executors.`privilegedThreadFactory()` Returns a thread factory used to create new threads that have the same permissions as the current thread.

    Methods in java.util.concurrent with parameters of type ThreadFactory
    Modifier and Type | Method and Description
    --- | ---
    `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, 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 ScheduledExecutorService` | Executors.`newScheduledThreadPool(int corePoolSize, ThreadFactory threadFactory)` Creates a thread pool that can schedule commands to run after a given delay, or to execute periodically.
    `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 ScheduledExecutorService` | Executors.`newSingleThreadScheduledExecutor(ThreadFactory threadFactory)` Creates a single-threaded executor that can schedule commands to run after a given delay, or to execute periodically.
    `void` | ThreadPoolExecutor.`setThreadFactory(ThreadFactory threadFactory)` Sets the thread factory used to create new threads.

    Constructors in java.util.concurrent with parameters of type ThreadFactory
    Constructor and Description
    `ScheduledThreadPoolExecutor(int corePoolSize, ThreadFactory threadFactory)` Creates a new `ScheduledThreadPoolExecutor` with the given initial parameters.
    `ScheduledThreadPoolExecutor(int corePoolSize, ThreadFactory threadFactory, RejectedExecutionHandler handler)` Creates a new ScheduledThreadPoolExecutor with the given initial parameters.
    `ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory)` Creates a new `ThreadPoolExecutor` with the given initial parameters and default rejected execution handler.
    `ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler)` Creates a new `ThreadPoolExecutor` with the given initial parameters.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.