Spec-Zone.ru › OpenJDK 8

Класс 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.
 }
С:
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(Callable<T> callable)

Возвращает RunnableFuture для заданной callable-задачи.

protected <T> RunnableFuture<T> newTaskFor(Runnable runnable, T value)

Возвращает RunnableFuture для заданного runnable и значения по умолчанию.

<T> Future<T> submit(Callable<T> task)

Передаёт задачу с возвращаемым значением для выполнения и возвращает Future, представляющий ожидаемые результаты задачи.

Future<?> submit(Runnable task)

Передаёт задачу Runnable для выполнения и возвращает Future, представляющий эту задачу.

<T> Future<T> submit(Runnable task, T result)

Передаёт задачу Runnable для выполнения и возвращает Future, представляющий эту задачу.

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

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

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

awaitTermination, isShutdown, isTerminated, shutdown, shutdownNow

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

execute

Конструкторы

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, представляющее эту задачу. Метод 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 - единица измерения времени для аргумента таймаута
Возвращаемое значение:
результат, возвращённый одной из задач
Исключения:
InterruptedException - если прервано ожидание
ExecutionException - если ни одна задача не завершается успешно
TimeoutException - если заданный таймаут истекает, прежде чем любая задача завершится успешно

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

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

© 1993, 2020, 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