Spec-Zone.ru › OpenJDK 17

Класс AbstractExecutorService

java.lang.Object
java.util.concurrent.AbstractExecutorService
Все реализованные интерфейсы:
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.
 }
C момента:
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, isShutdown, isTerminated, shutdown, shutdownNow

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

AbstractExecutorService

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

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

newTaskFor

protected <T> RunnableFuture<T> newTaskFor(Runnable runnable, T value)
Возвращает RunnableFuture для заданного runnable и значения по умолчанию.
Параметры типа:
T - тип заданного значения
Параметры:
runnable - задача runnable, которая оборачивается
value - значение по умолчанию для возвращаемого будущего
Возвращаемое значение:
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, представляющую эту задачу. Метод Future's get вернёт null при успешном завершении.
Определено в:
submit в интерфейсе ExecutorService
Параметры:
task - задача для отправки
Возвращаемое значение:
Future, представляющее ожидающее завершение задачи
Исключение:
RejectedExecutionException - если задача не может быть запланирована для выполнения
NullPointerException - если задача равна null

submit

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

submit

public <T> Future<T> submit(Callable<T> task)
Описание, скопированное из интерфейса: ExecutorService
Отправляет задачу, возвращающую значение, для выполнения и возвращает Future, представляющую ожидаемые результаты задачи. Метод Future's get вернёт результат задачи при успешном завершении.

Если вы хотите немедленно заблокировать ожидание задачи, вы можете использовать конструкции типа 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, 2021, 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/17/docs/api/java.base/java/util/concurrent/AbstractExecutorService.html

Spec-Zone.ru

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