Spec-Zone.ru › OpenJDK 21

Класс 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 для заданного runnable и значения по умолчанию.
Параметры типа:
T - тип заданного значения
Параметры:
runnable - выполняемая задача runnable, которая оборачивается
value - значение по умолчанию для возвращаемого будущего
Возвращает:
a RunnableFuture, который при выполнении выполнит подлежащую runnable и который, как Future, вернёт заданное значение в качестве результата и обеспечит отмену подлежащей задачи
С момента:
1.6

newTaskFor

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

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 - если прервано ожидание
ExecutionException - если ни одна задача не завершилась успешно
TimeoutException - если заданный таймаут истекает до успешного завершения любой задачи

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 - если прервано ожидание, в этом случае незавершенные задачи отменяются

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 - если прервано ожидание, в этом случае незавершенные задачи отменяются

© 1993, 2023, 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/21/docs/api/java.base/java/util/concurrent/AbstractExecutorService.html

Spec-Zone.ru

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