Класс 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() |
Создаёт исполнитель, использующий один рабочий поток, работающий с неограниченной очередью. |
static ExecutorService |
newSingleThreadExecutor |
Создаёт исполнитель, использующий один рабочий поток, работающий с неограниченной очередью, и использующий предоставленный ThreadFactory для создания нового потока при необходимости. |
static ScheduledExecutorService |
newSingleThreadScheduledExecutor() |
Создаёт однопоточный исполнитель, который может планировать выполнение команд с заданной задержкой или их периодическое выполнение. |
static ScheduledExecutorService |
newSingleThreadScheduledExecutor |
Создаёт однопоточный исполнитель, который может планировать выполнение команд с заданной задержкой или их периодическое выполнение. |
static ExecutorService |
newThreadPerTaskExecutor |
Создаёт исполнитель, который запускает новый поток для каждой задачи. |
static ExecutorService |
newVirtualThreadPerTaskExecutor() |
Создаёт исполнитель, который запускает новый виртуальный поток для каждой задачи. |
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 заданному исполнителю, но не какие-либо другие методы, которые иначе могли бы быть доступны посредством приведений типов. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание методов
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, но не любые другие методы, которые в противном случае могли бы быть доступны с помощью приведений типов. Это позволяет безопасно «зафиксировать» конфигурацию и запретить настройку конкретной реализации.- Параметры:
-
executor— базовая реализация - Возвращает:
- экземпляр
ExecutorService - Вызывает исключение:
-
NullPointerException— если executor равен null
unconfigurableScheduledExecutorService
public static ScheduledExecutorService unconfigurableScheduledExecutorService(ScheduledExecutorService executor)
ScheduledExecutorService указанному Executor, но не любые другие методы, которые в противном случае могли бы быть доступны с помощью приведений типов. Это позволяет безопасно «зафиксировать» конфигурацию и запретить настройку конкретной реализации.- Параметры:
-
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 новых потоков значение, совпадающее со значением у потока, вызвавшего этот метод 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.
Callable, который при вызове выполнял заданныйcallableв контексте управления доступом текущего потока.