Spec-Zone.ru › OpenJDK 25

Класс AbstractExecutorService

java.lang.Object
java.util.concurrent.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<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks)
Выполняет заданные задачи и возвращает список объектов Future, содержащих их состояние и результаты после завершения всех задач.
<T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)
Выполняет заданные задачи и возвращает список объектов Future, содержащих их состояние и результаты после завершения всех задач или истечения времени ожидания — в зависимости от того, что произойдет раньше.
<T> T invokeAny(Collection<? extends Callable<T>> tasks)
Выполняет заданные задачи и возвращает результат одной из них, если таковая завершилась успешно (то есть без выброса исключения).
<T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)
Выполняет заданные задачи и возвращает результат одной из них, если таковая завершилась успешно (то есть без выброса исключения) до истечения заданного времени ожидания.
protected <T> RunnableFuture<T> newTaskFor(Runnable runnable, T value)
Возвращает RunnableFuture для заданного объекта Runnable и значения по умолчанию.
protected <T> RunnableFuture<T> newTaskFor(Callable<T> callable)
Возвращает RunnableFuture для заданной задачи Callable.
Future<?> submit(Runnable task)
Отправляет задачу Runnable на выполнение и возвращает объект Future, представляющий эту задачу.
<T> Future<T> submit(Runnable task, T result)
Отправляет задачу Runnable на выполнение и возвращает объект Future, представляющий эту задачу.
<T> Future<T> submit(Callable<T> task)
Отправляет на выполнение задачу, возвращающую значение, и возвращает объект Future, представляющий ожидаемые результаты этой задачи.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Методы, объявленные в интерфейсе Executor

execute

Методы, объявленные в интерфейсе 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)
Описание скопировано из интерфейса: ExecutorService
Отправляет задачу Runnable на выполнение и возвращает объект Future, представляющий эту задачу. Метод get объекта Future вернет null при успешном завершении.
Определено в:
submit в интерфейсе ExecutorService
Параметры:
task — задача для отправки
Возвращает:
объект Future, представляющий ожидающее завершения задачи
Выбрасывает:
RejectedExecutionException — если задачу невозможно запланировать для выполнения
NullPointerException — если задача равна null

submit

public <T> Future<T> submit(Runnable task, T result)
Описание скопировано из интерфейса: ExecutorService
Отправляет задачу Runnable на выполнение и возвращает объект Future, представляющий эту задачу. Метод get объекта Future вернет заданный результат при успешном завершении.
Определено в:
submit в интерфейсе ExecutorService
Параметры типа:
T — тип результата
Параметры:
task — задача для отправки
result — возвращаемый результат
Возвращает:
объект Future, представляющий ожидающее завершения задачи
Выбрасывает:
RejectedExecutionException — если задачу невозможно запланировать для выполнения
NullPointerException — если задача равна null

submit

public <T> Future<T> submit(Callable<T> task)
Описание скопировано из интерфейса: ExecutorService
Отправляет на выполнение задачу, возвращающую значение, и возвращает объект Future, представляющий ожидаемые результаты этой задачи. Метод get объекта 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
Описание скопировано из интерфейса: ExecutorService
Выполняет заданные задачи и возвращает список объектов Future, содержащих их состояние и результаты после завершения всех задач. Для каждого элемента возвращаемого списка Future.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
Описание скопировано из интерфейса: ExecutorService
Выполняет заданные задачи и возвращает список объектов Future, содержащих их состояние и результаты после завершения всех задач или истечения времени ожидания — в зависимости от того, что произойдет раньше. Для каждого элемента возвращаемого списка Future.isDone() имеет значение true. При возврате метода незавершенные задачи отменяются. Обратите внимание, что задача, завершившаяся, могла завершиться как нормально, так и с выбросом исключения. Результат работы этого метода не определен, если заданная коллекция изменяется во время выполнения операции.
Определено в:
invokeAll в интерфейсе ExecutorService
Параметры типа:
T — тип значений, возвращаемых задачами
Параметры:
tasks — коллекция задач
timeout — максимальное время ожидания
unit — единица измерения времени для аргумента, задающего время ожидания
Возвращает:
список объектов Future, представляющих задачи, в том же последовательном порядке, что и в итераторе заданного списка задач. Если время ожидания операции не истекло, каждая задача будет завершена. Если время ожидания истекло, некоторые задачи могут остаться незавершенными.
Выбрасывает:
InterruptedException — если ожидание было прервано; в этом случае незавершенные задачи отменяются
NullPointerException — если коллекция tasks, любой ее элемент или unit равны null
RejectedExecutionException — если какую-либо задачу невозможно запланировать для выполнения

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, способы обхода проблем и практические примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее дочерних компаний в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API