Класс 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() |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected <T> RunnableFuture<T> | newTaskFor(Runnable runnable,
T value) | Возвращает |
protected <T> RunnableFuture<T> | newTaskFor(Callable<T> 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, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isTerminated, shutdown, 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
© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/AbstractExecutorService.html