Spec-Zone.ru › OpenJDK 27

Класс AbstractExecutorService

java.lang.Object
java.util.concurrent.AbstractExecutorService
Все реализуемые интерфейсы:
AutoCloseable, Executor, ExecutorService
Прямые известные подклассы:
ForkJoinPool, ThreadPoolExecutor
public abstract class AbstractExecutorService extends Object implements ExecutorService
Предоставляет реализации по умолчанию методов ExecutorService, кроме Executor.execute(Runnable). Этот класс реализует методы 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
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, является ли другой объект «равным» этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Финализация устарела и будет удалена в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие вызова notify или прерывания.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие вызова notify или прерывания, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие вызова notify или прерывания, либо до истечения заданного интервала реального времени.

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

execute
Модификатор и тип Метод Описание
void execute(Runnable command)
Выполняет заданную команду в некоторый момент в будущем.

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

awaitTermination, close, isShutdown, isTerminated, shutdown, shutdownNow
Модификатор и тип Метод Описание
boolean awaitTermination(long timeout, TimeUnit unit)
Блокирует выполнение до завершения всех задач после запроса на завершение работы, истечения времени ожидания или прерывания текущего потока — в зависимости от того, что наступит раньше.
default void close()
Инициирует упорядоченное завершение работы: ранее отправленные задачи выполняются, но новые задачи не принимаются.
boolean isShutdown()
Возвращает true, если работа этого исполнителя была завершена.
boolean isTerminated()
Возвращает true, если после завершения работы все задачи выполнены.
void shutdown()
Инициирует упорядоченное завершение работы: ранее отправленные задачи выполняются, но новые задачи не принимаются.
List<Runnable> 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 — если tasks или любая задача, подлежащая выполнению, равна 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, 2026, 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.

Spec-Zone.ru

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