Класс Executors
public final class Executors extends Object
Executor, ExecutorService, ScheduledExecutorService, ThreadFactory и Callable, определенных в этом пакете. Этот класс поддерживает следующие виды методов: - Методы, создающие и возвращающие
ExecutorService, настроенный с использованием часто применяемых параметров. - Методы, создающие и возвращающие
ScheduledExecutorService, настроенный с использованием часто применяемых параметров. - Методы, создающие и возвращающие «обернутый» ExecutorService, который запрещает повторную настройку, делая недоступными специфичные для реализации методы.
- Методы, создающие и возвращающие
ThreadFactory, которая задает вновь создаваемым потокам заранее определенное состояние. - Методы, создающие и возвращающие
Callableна основе других форм, подобных замыканиям, чтобы их можно было использовать в методах выполнения, требующихCallable.
- С версии:
- 1.5
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static Callable |
callable |
Возвращает объект Callable, который при вызове выполняет указанную задачу и возвращает null. |
static <T> Callable |
callable |
Возвращает объект Callable, который при вызове выполняет указанную задачу и возвращает заданный результат. |
static Callable |
callable |
Возвращает объект Callable, который при вызове выполняет указанное привилегированное действие и возвращает его результат. |
static Callable |
callable |
Возвращает объект Callable, который при вызове выполняет указанное привилегированное действие с возможностью выброса исключения и возвращает его результат. |
static ThreadFactory |
defaultThreadFactory() |
Возвращает фабрику потоков по умолчанию, используемую для создания новых потоков. |
static ExecutorService |
newCachedThreadPool() |
Создает пул потоков, который создает новые потоки по мере необходимости, но повторно использует ранее созданные потоки, когда они доступны. |
static ExecutorService |
newCachedThreadPool |
Создает пул потоков, который создает новые потоки по мере необходимости, но повторно использует ранее созданные потоки, когда они доступны, и использует предоставленную ThreadFactory для создания новых потоков при необходимости. |
static ExecutorService |
newFixedThreadPool |
Создает пул потоков, который повторно использует фиксированное количество потоков, работающих с общей неограниченной очередью. |
static ExecutorService |
newFixedThreadPool |
Создает пул потоков, который повторно использует фиксированное количество потоков, работающих с общей неограниченной очередью, используя предоставленную ThreadFactory для создания новых потоков при необходимости. |
static ScheduledExecutorService |
newScheduledThreadPool |
Создает пул потоков, который может планировать выполнение команд с заданной задержкой или периодически. |
static ScheduledExecutorService |
newScheduledThreadPool |
Создает пул потоков, который может планировать выполнение команд с заданной задержкой или периодически. |
static ExecutorService |
newSingleThreadExecutor() |
Создает Executor, использующий один рабочий поток с неограниченной очередью. |
static ExecutorService |
newSingleThreadExecutor |
Создает Executor, использующий один рабочий поток с неограниченной очередью и использующий предоставленную ThreadFactory для создания нового потока при необходимости. |
static ScheduledExecutorService |
newSingleThreadScheduledExecutor() |
Создает однопоточный исполнитель, который может планировать выполнение команд с заданной задержкой или периодически. |
static ScheduledExecutorService |
newSingleThreadScheduledExecutor |
Создает однопоточный исполнитель, который может планировать выполнение команд с заданной задержкой или периодически. |
static ExecutorService |
newThreadPerTaskExecutor |
Создает Executor, запускающий новый поток для каждой задачи. |
static ExecutorService |
newVirtualThreadPerTaskExecutor() |
Создает Executor, запускающий новый виртуальный поток для каждой задачи. |
static ExecutorService |
newWorkStealingPool() |
Создает пул потоков с распределением работы, используя количество доступных процессоров в качестве целевого уровня параллелизма. |
static ExecutorService |
newWorkStealingPool |
Создает пул потоков, поддерживающий достаточное количество потоков для заданного уровня параллелизма и способный использовать несколько очередей для снижения конкуренции. |
static <T> Callable |
privilegedCallable |
Устарело, будет удалено: этот элемент API может быть удален в будущей версии. |
static <T> Callable |
privilegedCallableUsingCurrentClassLoader |
Устарело, будет удалено: этот элемент API может быть удален в будущей версии. Изначально этот метод возвращал объект Callable, который при вызове выполнял указанное callable в текущем контексте управления доступом, используя загрузчик классов текущего контекста в качестве загрузчика классов контекста. |
static ThreadFactory |
privilegedThreadFactory() |
Устарело, будет удалено: этот элемент API может быть удален в будущей версии. Изначально этот метод возвращал фабрику потоков, создававшую новые потоки с тем же контекстом управления доступом, что и у текущего потока. |
static ExecutorService |
unconfigurableExecutorService |
Возвращает объект, делегирующий все определенные методы ExecutorService указанному исполнителю, но не любые другие методы, которые могли бы быть доступны посредством приведения типов. |
static ScheduledExecutorService |
unconfigurableScheduledExecutorService |
Возвращает объект, делегирующий все определенные методы ScheduledExecutorService указанному исполнителю, но не любые другие методы, которые могли бы быть доступны посредством приведения типов. |
Подробное описание методов
newFixedThreadPool
public static ExecutorService newFixedThreadPool(int nThreads)
nThreads потоков. Если все потоки заняты, дополнительные отправленные задачи будут ожидать в очереди, пока не освободится поток. Если до завершения работы какой-либо поток прекратит работу из-за сбоя во время выполнения, при необходимости его заменит новый поток для выполнения последующих задач. Потоки в пуле будут существовать до тех пор, пока пул явно не будет shutdown.- Параметры:
-
nThreads— число потоков в пуле - Возвращает:
- созданный пул потоков
- Исключения:
-
IllegalArgumentException— еслиnThreads <= 0
newWorkStealingPool
public static ExecutorService newWorkStealingPool(int parallelism)
- Параметры:
-
parallelism— целевой уровень параллелизма - Возвращает:
- созданный пул потоков
- Исключения:
-
IllegalArgumentException— еслиparallelism <= 0 - С версии:
- 1.8
newWorkStealingPool
public static ExecutorService newWorkStealingPool()
- Возвращает:
- созданный пул потоков
- С версии:
- 1.8
- См. также:
newFixedThreadPool
public static ExecutorService newFixedThreadPool(int nThreads, ThreadFactory threadFactory)
nThreads потоков. Если все потоки заняты, дополнительные отправленные задачи будут ожидать в очереди, пока не освободится поток. Если до завершения работы какой-либо поток прекратит работу из-за сбоя во время выполнения, при необходимости его заменит новый поток для выполнения последующих задач. Потоки в пуле будут существовать до тех пор, пока пул явно не будет shutdown.- Параметры:
-
nThreads— число потоков в пуле -
threadFactory— фабрика, используемая для создания новых потоков - Возвращает:
- созданный пул потоков
- Исключения:
-
NullPointerException— если threadFactory равен null -
IllegalArgumentException— еслиnThreads <= 0
newSingleThreadExecutor
public static ExecutorService newSingleThreadExecutor()
newFixedThreadPool(1), гарантируется, что возвращенный Executor нельзя будет переконфигурировать для использования дополнительных потоков.- Возвращает:
- созданный однопоточный Executor
newSingleThreadExecutor
public static ExecutorService newSingleThreadExecutor(ThreadFactory threadFactory)
newFixedThreadPool(1, threadFactory), гарантируется, что возвращенный Executor нельзя будет переконфигурировать для использования дополнительных потоков.- Параметры:
-
threadFactory— фабрика, используемая для создания новых потоков - Возвращает:
- созданный однопоточный Executor
- Исключения:
-
NullPointerException— если threadFactory равен null
newCachedThreadPool
public static ExecutorService newCachedThreadPool()
execute будут повторно использовать ранее созданные потоки, если таковые доступны. Если доступных потоков нет, будет создан новый поток и добавлен в пул. Потоки, которые не использовались в течение шестидесяти секунд, завершаются и удаляются из кэша. Таким образом, пул, простаивающий достаточно долго, не будет потреблять ресурсы. Обратите внимание, что пулы с похожими свойствами, но отличающимися параметрами (например, параметрами времени ожидания), можно создать с помощью конструкторов ThreadPoolExecutor.- Возвращает:
- созданный пул потоков
newCachedThreadPool
public static ExecutorService newCachedThreadPool(ThreadFactory threadFactory)
- Параметры:
-
threadFactory— фабрика, используемая для создания новых потоков - Возвращает:
- созданный пул потоков
- Исключения:
-
NullPointerException— если threadFactory равен null
newThreadPerTaskExecutor
public static ExecutorService newThreadPerTaskExecutor(ThreadFactory threadFactory)
Вызов cancel(true) для Future, представляющего ожидающий результат задачи, отправленной Executor, приведет к тому, что поток, выполняющий задачу, будет interrupt.
- Параметры:
-
threadFactory— фабрика, используемая для создания новых потоков - Возвращает:
- новый Executor, создающий новый Thread для каждой задачи
- Исключения:
-
NullPointerException— если threadFactory равен null - С версии:
- 21
newVirtualThreadPerTaskExecutor
public static ExecutorService newVirtualThreadPerTaskExecutor()
Этот метод эквивалентен вызову newThreadPerTaskExecutor(ThreadFactory) с фабрикой потоков, создающей виртуальные потоки.
- Возвращает:
- новый Executor, создающий новый виртуальный Thread для каждой задачи
- С версии:
- 21
newSingleThreadScheduledExecutor
public static ScheduledExecutorService newSingleThreadScheduledExecutor()
newScheduledThreadPool(1), гарантируется, что возвращенный Executor нельзя будет переконфигурировать для использования дополнительных потоков.- Возвращает:
- созданный Executor с планировщиком
newSingleThreadScheduledExecutor
public static ScheduledExecutorService newSingleThreadScheduledExecutor(ThreadFactory threadFactory)
newScheduledThreadPool(1, threadFactory), гарантируется, что возвращенный Executor нельзя будет переконфигурировать для использования дополнительных потоков.- Параметры:
-
threadFactory— фабрика, используемая для создания новых потоков - Возвращает:
- созданный Executor с планировщиком
- Исключения:
-
NullPointerException— если threadFactory равен null
newScheduledThreadPool
public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize)
- Параметры:
-
corePoolSize— число потоков, сохраняемых в пуле, даже если они простаивают - Возвращает:
- созданный пул запланированных потоков
- Исключения:
-
IllegalArgumentException— еслиcorePoolSize < 0
newScheduledThreadPool
public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize, ThreadFactory threadFactory)
- Параметры:
-
corePoolSize— число потоков, сохраняемых в пуле, даже если они простаивают -
threadFactory— фабрика, используемая Executor для создания нового потока - Возвращает:
- созданный пул запланированных потоков
- Исключения:
-
IllegalArgumentException— еслиcorePoolSize < 0 -
NullPointerException— если threadFactory равен null
unconfigurableExecutorService
public static ExecutorService unconfigurableExecutorService(ExecutorService executor)
ExecutorService, но не других методов, которые в противном случае могли бы быть доступны с помощью приведения типов. Это позволяет безопасно «зафиксировать» конфигурацию и запретить настройку заданной конкретной реализации.- Параметры:
-
executor— базовая реализация - Возвращает:
- экземпляр
ExecutorService - Исключения:
-
NullPointerException— если executor равен null
unconfigurableScheduledExecutorService
public static ScheduledExecutorService unconfigurableScheduledExecutorService(ScheduledExecutorService executor)
ScheduledExecutorService, но не других методов, которые в противном случае могли бы быть доступны с помощью приведения типов. Это позволяет безопасно «зафиксировать» конфигурацию и запретить настройку заданной конкретной реализации.- Параметры:
-
executor— базовая реализация - Возвращает:
- экземпляр
ScheduledExecutorService - Исключения:
-
NullPointerException— если executor равен null
defaultThreadFactory
public static ThreadFactory defaultThreadFactory()
ThreadGroup. Она использует группу потока, вызывающего этот метод defaultThreadFactory. Каждый новый поток создается как не демон-поток с приоритетом, равным меньшему из значений Thread.NORM_PRIORITY и максимального приоритета, разрешенного в группе потоков. Имена новых потоков доступны через Thread.getName() и имеют вид pool-N-thread-M, где N — порядковый номер этой фабрики, а M — порядковый номер потока, созданного этой фабрикой.- Возвращает:
- фабрику потоков
privilegedThreadFactory
@Deprecated(since="17", forRemoval=true) public static ThreadFactory privilegedThreadFactory()
defaultThreadFactory(), дополнительно задавая contextClassLoader новых потоков равным contextClassLoader потока, вызывающего этот метод privilegedThreadFactory. Обратите внимание: хотя задачи, выполняемые в таких потоках, используют тот же загрузчик классов, что и текущий поток, значения их ThreadLocal и InheritableThreadLocal могут отличаться. При необходимости отдельные значения переменных потока можно задать или сбросить до запуска любой задачи в подклассах ThreadPoolExecutor с помощью ThreadPoolExecutor.beforeExecute(Thread, Runnable). Кроме того, если необходимо инициализировать рабочие потоки с теми же настройками InheritableThreadLocal, что и у другого заданного потока, можно создать пользовательскую ThreadFactory, в которой этот поток будет ожидать запросов на создание других потоков и обрабатывать их, чтобы новые потоки наследовали его значения.
- Возвращает:
- фабрику потоков
callable
public static <T> Callable<T> callable(Runnable task, T result)
Callable, который при вызове выполняет заданную задачу и возвращает заданный результат. Это может быть полезно при применении методов, требующих Callable, к действию, которое само по себе не возвращает результат.- Параметры типа:
T— тип результата- Параметры:
-
task— выполняемая задача -
result— возвращаемый результат - Возвращает:
- объект callable
- Исключения:
-
NullPointerException— если task равен null
callable
public static Callable<Object> callable(Runnable task)
Callable, который при вызове выполняет заданную задачу и возвращает null.- Параметры:
-
task— выполняемая задача - Возвращает:
- объект callable
- Исключения:
-
NullPointerException— если task равен null
callable
public static Callable<Object> callable(PrivilegedAction<?> action)
Callable, который при вызове выполняет заданное привилегированное действие и возвращает его результат.- Параметры:
-
action— выполняемое привилегированное действие - Возвращает:
- объект callable
- Исключения:
-
NullPointerException— если action равен null
callable
public static Callable<Object> callable(PrivilegedExceptionAction<?> action)
Callable, который при вызове выполняет заданное привилегированное действие с возможностью возникновения исключения и возвращает его результат.- Параметры:
-
action— выполняемое привилегированное действие с возможностью возникновения исключения - Возвращает:
- объект callable
- Исключения:
-
NullPointerException— если action равен null
privilegedCallable
@Deprecated(since="17", forRemoval=true) public static <T> Callable<T> privilegedCallable(Callable<T> callable)
Callable, который при вызове выполнял заданный callable в текущем контексте управления доступом. Контексты управления доступом были полезны только в сочетании с менеджером безопасности, поддержка которого прекращена. Замены менеджеру безопасности или этому методу нет.Callable, который при вызове выполняет заданный callable и возвращает его результат.- Параметры типа:
T— тип результата callable- Параметры:
-
callable— базовая задача - Возвращает:
- объект callable
- Исключения:
-
NullPointerException— если callable равен null
privilegedCallableUsingCurrentClassLoader
@Deprecated(since="17", forRemoval=true) public static <T> Callable<T> privilegedCallableUsingCurrentClassLoader(Callable<T> callable)
Callable, который при вызове выполнял заданный callable в текущем контексте управления доступом, используя текущий загрузчик классов контекста в качестве загрузчика классов контекста. Контексты управления доступом были полезны только в сочетании с менеджером безопасности, поддержка которого прекращена. Замены менеджеру безопасности или этому методу нет.Callable, который при вызове выполняет заданный callable, используя текущий загрузчик классов контекста в качестве загрузчика классов контекста.- Параметры типа:
T— тип результата callable- Параметры:
-
callable— базовая задача - Возвращает:
- объект callable
- Исключения:
-
NullPointerException— если callable равен null
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/concurrent/Executors.html
Callable, который при вызове выполнял указанноеcallableв текущем контексте управления доступом.