Spec-Zone.ru › OpenJDK 24

Класс 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)
Выполняет заданные задачи, возвращая список Futures, содержащий их статус и результаты после завершения всех.
<T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)
Выполняет заданные задачи, возвращая список Futures, содержащий их статус и результаты после завершения всех или истечения срока ожидания, что произойдёт первым.
<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, представляющую ожидаемые результаты задачи.

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

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

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

execute

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

awaitTermination, close, isShutdown, isTerminated, shutdown, shutdownNow

Подробное описание конструкторов

AbstractExecutorService

public AbstractExecutorService()
Конструктор для вызова подклассами.

Подробное описание методов

newTaskFor

protected <T> RunnableFuture<T> newTaskFor(Runnable runnable, T value)
Возвращает RunnableFuture для заданного исполняемого объекта и значения по умолчанию.
Параметры типа:
T - тип заданного значения
Параметры:
runnable - обрабатываемая задача Runnable
value - значение по умолчанию для возвращаемого будущего
Возвращает:
RunnableFuture, который при выполнении выполнит базовый Runnable и который, как Future, вернёт заданное значение в качестве результата и обеспечит возможность отмены базовой задачи
С:
1.6

newTaskFor

protected <T> RunnableFuture<T> newTaskFor(Callable<T> callable)
Возвращает RunnableFuture для заданной задачи Callable.
Параметры типа:
T - тип результата вызова
Параметры:
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 - если задачи, или единица, или любая из них подлежат выполнению, то есть null
TimeoutException - если заданный тайм-аут истекает до того, как любая задача завершится успешно
ExecutionException - если ни одна задача не завершилась успешно
RejectedExecutionException - если задачи не могут быть запланированы на выполнение

invokeAll

public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException
Описание скопировано из интерфейса: ExecutorService
Выполняет заданные задачи, возвращая список Futures, содержащих их состояние и результаты, когда все завершатся. Future.isDone() является true для каждого элемента возвращаемого списка. Обратите внимание, что завершенная задача могла завершиться как нормально, так и сбросив исключение. Результаты этого метода неопределены, если заданный коллектив модифицируется во время выполнения операции.
Задано:
invokeAll в интерфейсе ExecutorService
Параметры типа:
T - тип значений, возвращаемых из задач
Параметры:
tasks - коллекция задач
Возвращает:
список Futures, представляющих задачи в том же порядке, что и у итератора для заданного списка задач, каждая из которых завершена
Исключения:
InterruptedException - если прервано ожидание, в этом случае незавершенные задачи отменяются
NullPointerException - если задачи или любой из элементов являются null
RejectedExecutionException - если какая-либо задача не может быть запланирована на выполнение

invokeAll

public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException
Описание скопировано из интерфейса: ExecutorService
Выполняет заданные задачи, возвращая список Futures, содержащих их статус и результаты, когда все завершатся или истечёт время ожидания, в зависимости от того, что произойдёт раньше. Future.isDone() является true для каждого элемента возвращаемого списка. По возвращении задачи, которые не завершились, отменяются. Обратите внимание, что завершенная задача могла завершиться нормально или сбросив исключение. Результаты этого метода неопределённы, если заданный список изменяется во время выполнения этой операции.
Указано в:
invokeAll в интерфейсе ExecutorService
Параметры типа:
T - тип значений, возвращаемых задачами
Параметры:
tasks - список задач
timeout - максимальное время ожидания
unit - единица измерения времени аргумента таймаута
Возвращает:
список Futures, представляющих задачи в том же последовательном порядке, что и итератор для заданного списка задач. Если операция не закончилась с истечением времени ожидания, каждая задача будет завершена. Если истекло время ожидания, некоторые из этих задач не завершатся.
Бросает:
InterruptedException - если прервано ожидание, в этом случае незавершенные задачи отменяются
NullPointerException - если задачи, любой из его элементов или единица являются 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/concurrent/AbstractExecutorService.html

Spec-Zone.ru

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