Класс AbstractExecutorService
- Все реализуемые интерфейсы:
AutoCloseable, Executor, ExecutorService
- Прямые известные подклассы:
ForkJoinPool, ThreadPoolExecutor
public abstract class AbstractExecutorService extends Object implements ExecutorService
ExecutorService. Этот класс реализует методы submit, invokeAny и invokeAll с помощью RunnableFuture, возвращаемого методом newTaskFor, который по умолчанию использует класс FutureTask, предоставляемый в этом пакете. Например, реализация submit(Runnable) создает связанный RunnableFuture, который выполняется и возвращается. Подклассы могут переопределить методы newTaskFor, чтобы возвращать реализации RunnableFuture, отличные от FutureTask. Пример расширения. Ниже приведен набросок класса, который настраивает ThreadPoolExecutor, чтобы использовать класс CustomTask вместо FutureTask по умолчанию:
public class CustomThreadPoolExecutor extends ThreadPoolExecutor {
static class CustomTask<V> implements RunnableFuture<V> { ... }
protected <V> RunnableFuture<V> newTaskFor(Callable<V> c) {
return new CustomTask<V>(c);
}
protected <V> RunnableFuture<V> newTaskFor(Runnable r, V v) {
return new CustomTask<V>(r, v);
}
// ... add constructors, etc.
}
- Начиная с:
- 1.5
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
AbstractExecutorService() |
Конструктор, предназначенный для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
<T> List |
invokeAll |
Выполняет заданные задачи и возвращает список объектов Future, содержащих их состояние и результаты после завершения всех задач. |
<T> List |
invokeAll |
Выполняет заданные задачи и возвращает список объектов Future, содержащих их состояние и результаты после завершения всех задач или истечения времени ожидания — в зависимости от того, что произойдет раньше. |
<T> T |
invokeAny |
Выполняет заданные задачи и возвращает результат одной из них, если таковая завершилась успешно (то есть без выброса исключения). |
<T> T |
invokeAny |
Выполняет заданные задачи и возвращает результат одной из них, если таковая завершилась успешно (то есть без выброса исключения) до истечения заданного времени ожидания. |
protected <T> RunnableFuture |
newTaskFor |
Возвращает RunnableFuture для заданного объекта Runnable и значения по умолчанию. |
protected <T> RunnableFuture |
newTaskFor |
Возвращает RunnableFuture для заданной задачи Callable. |
Future |
submit |
Отправляет задачу Runnable на выполнение и возвращает объект Future, представляющий эту задачу. |
<T> Future |
submit |
Отправляет задачу Runnable на выполнение и возвращает объект Future, представляющий эту задачу. |
<T> Future |
submit |
Отправляет на выполнение задачу, возвращающую значение, и возвращает объект Future, представляющий ожидаемые результаты этой задачи. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе ExecutorService
awaitTermination, close, isShutdown, isTerminated, shutdown, shutdownNow
Подробное описание конструкторов
AbstractExecutorService
public AbstractExecutorService()
Подробное описание методов
newTaskFor
protected <T> RunnableFuture<T> newTaskFor(Runnable runnable, T value)
RunnableFuture для заданного объекта Runnable и значения по умолчанию.- Параметры типа:
T— тип заданного значения- Параметры:
-
runnable— оборачиваемая задача Runnable -
value— значение по умолчанию для возвращаемого объекта Future - Возвращает:
RunnableFuture, который при запуске выполнит базовую задачу Runnable и который, будучиFuture, предоставит заданное значение в качестве результата и позволит отменить базовую задачу- Начиная с:
- 1.6
newTaskFor
protected <T> RunnableFuture<T> newTaskFor(Callable<T> callable)
RunnableFuture для заданной задачи Callable.- Параметры типа:
T— тип результата Callable- Параметры:
-
callable— оборачиваемая задача Callable - Возвращает:
RunnableFuture, который при запуске вызовет базовую задачу Callable и который, будучиFuture, предоставит результат Callable и позволит отменить базовую задачу- Начиная с:
- 1.6
submit
public Future<?> submit(Runnable task)
ExecutorServiceget объекта Future вернет null при успешном завершении.- Определено в:
-
submitв интерфейсеExecutorService - Параметры:
-
task— задача для отправки - Возвращает:
- объект Future, представляющий ожидающее завершения задачи
- Выбрасывает:
-
RejectedExecutionException— если задачу невозможно запланировать для выполнения -
NullPointerException— если задача равна null
submit
public <T> Future<T> submit(Runnable task, T result)
ExecutorServiceget объекта Future вернет заданный результат при успешном завершении.- Определено в:
-
submitв интерфейсеExecutorService - Параметры типа:
T— тип результата- Параметры:
-
task— задача для отправки -
result— возвращаемый результат - Возвращает:
- объект Future, представляющий ожидающее завершения задачи
- Выбрасывает:
-
RejectedExecutionException— если задачу невозможно запланировать для выполнения -
NullPointerException— если задача равна null
submit
public <T> Future<T> submit(Callable<T> task)
ExecutorServiceget объекта Future вернет результат задачи при успешном завершении. Если вы хотите немедленно заблокировать выполнение в ожидании задачи, можно использовать конструкции вида result = exec.submit(aCallable).get();
Примечание. Класс Executors содержит набор методов, которые могут преобразовать некоторые другие распространенные объекты, похожие на замыкания, например PrivilegedAction, в форму Callable, чтобы их можно было отправлять на выполнение.
- Определено в:
-
submitв интерфейсеExecutorService - Параметры типа:
T— тип результата задачи- Параметры:
-
task— задача для отправки - Возвращает:
- объект Future, представляющий ожидающее завершения задачи
- Выбрасывает:
-
RejectedExecutionException— если задачу невозможно запланировать для выполнения -
NullPointerException— если задача равна null
invokeAny
public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException
ExecutorService- Определено в:
-
invokeAnyв интерфейсеExecutorService - Параметры типа:
T— тип значений, возвращаемых задачами- Параметры:
-
tasks— коллекция задач - Возвращает:
- результат, возвращенный одной из задач
- Выбрасывает:
-
InterruptedException— если ожидание было прервано -
NullPointerException— если задачи или любая задача-элемент, подлежащая выполнению, равнаnull -
IllegalArgumentException— если коллекция tasks пуста -
ExecutionException— если ни одна задача не завершилась успешно -
RejectedExecutionException— если задачи невозможно запланировать для выполнения
invokeAny
public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
ExecutorService- Определено в:
-
invokeAnyв интерфейсеExecutorService - Параметры типа:
T— тип значений, возвращаемых задачами- Параметры:
-
tasks— коллекция задач -
timeout— максимальное время ожидания -
unit— единица измерения времени для аргумента, задающего время ожидания - Возвращает:
- результат, возвращенный одной из задач
- Выбрасывает:
-
InterruptedException— если ожидание было прервано -
NullPointerException— если tasks, unit или любая задача-элемент, подлежащая выполнению, равнаnull -
TimeoutException— если заданное время ожидания истекло до успешного завершения какой-либо задачи -
ExecutionException— если ни одна задача не завершилась успешно -
RejectedExecutionException— если задачи невозможно запланировать для выполнения
invokeAll
public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException
ExecutorServiceFuture.isDone() имеет значение true. Обратите внимание, что задача, завершившаяся, могла завершиться как нормально, так и с выбросом исключения. Результат работы этого метода не определен, если заданная коллекция изменяется во время выполнения операции.- Определено в:
-
invokeAllв интерфейсеExecutorService - Параметры типа:
T— тип значений, возвращаемых задачами- Параметры:
-
tasks— коллекция задач - Возвращает:
- список объектов Future, представляющих задачи, в том же последовательном порядке, что и в итераторе заданного списка задач; каждый из этих объектов соответствует завершенной задаче
- Выбрасывает:
-
InterruptedException— если ожидание было прервано; в этом случае незавершенные задачи отменяются -
NullPointerException— если коллекция tasks или любой ее элемент равныnull -
RejectedExecutionException— если какую-либо задачу невозможно запланировать для выполнения
invokeAll
public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException
ExecutorServiceFuture.isDone() имеет значение true. При возврате метода незавершенные задачи отменяются. Обратите внимание, что задача, завершившаяся, могла завершиться как нормально, так и с выбросом исключения. Результат работы этого метода не определен, если заданная коллекция изменяется во время выполнения операции.- Определено в:
-
invokeAllв интерфейсеExecutorService - Параметры типа:
T— тип значений, возвращаемых задачами- Параметры:
-
tasks— коллекция задач -
timeout— максимальное время ожидания -
unit— единица измерения времени для аргумента, задающего время ожидания - Возвращает:
- список объектов Future, представляющих задачи, в том же последовательном порядке, что и в итераторе заданного списка задач. Если время ожидания операции не истекло, каждая задача будет завершена. Если время ожидания истекло, некоторые задачи могут остаться незавершенными.
- Выбрасывает:
-
InterruptedException— если ожидание было прервано; в этом случае незавершенные задачи отменяются -
NullPointerException— если коллекция tasks, любой ее элемент или unit равныnull -
RejectedExecutionException— если какую-либо задачу невозможно запланировать для выполнения
© 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/AbstractExecutorService.html