Spec-Zone.ru › OpenJDK 21

Класс FutureTask<V>

java.lang.Object
java.util.concurrent.FutureTask<V>
Type Parameters:
V - Тип результата, возвращаемый методами get этого FutureTask
Все реализованные интерфейсы:
Runnable, Future<V>, RunnableFuture<V>
public class FutureTask<V> extends Object implements RunnableFuture<V>
Асинхронное вычисление, которое можно отменить. Этот класс предоставляет базовую реализацию интерфейса Future с методами для запуска и отмены вычисления, запроса о завершении вычисления и получения результата вычисления. Результат можно получить только после завершения вычисления; методы get будут блокировать выполнение, если вычисление еще не завершено. После завершения вычисления, его нельзя перезапустить или отменить (за исключением случаев, когда вычисление вызывается с помощью runAndReset()).

Можно использовать FutureTask для обертывания объекта Callable или Runnable. Так как FutureTask реализует интерфейс Runnable, FutureTask можно отправить на выполнение исполнителю Executor.

В дополнение к использованию в качестве самостоятельного класса, этот класс предоставляет protected функциональность, которая может быть полезна при создании настраиваемых классов задач.

Since:
1.5

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в интерфейсе java.util.concurrent.Future

Future.State

Краткое описание конструкторов

Конструктор Описание
FutureTask(Runnable runnable, V result)
Создает FutureTask, который при запуске выполнит заданный Runnable, и организует, чтобы get вернул заданный результат при успешном завершении.
FutureTask(Callable<V> callable)
Создает FutureTask, который при запуске выполнит заданный Callable.

Краткое описание методов

Модификатор и тип Метод Описание
boolean cancel(boolean mayInterruptIfRunning)
Попытка отменить выполнение этой задачи.
protected void done()
Защищенный метод, вызываемый, когда эта задача переходит в состояние isDone (как обычно, так и при отмене).
V get()
Ожидает завершения вычисления, если необходимо, и возвращает его результат.
V get(long timeout, TimeUnit unit)
Ожидает завершения вычисления в течение заданного времени, если необходимо, и возвращает его результат, если он доступен.
boolean isCancelled()
Возвращает true , если эта задача была отменена до нормального завершения.
boolean isDone()
Возвращает true если эта задача завершилась.
void run()
Устанавливает этот Future в результат его вычисления, если он не был отменен.
protected boolean runAndReset()
Выполняет вычисление без установки его результата, а затем сбрасывает этот future в начальное состояние, не делая этого, если вычисление столкнулось с исключением или было отменено.
protected void set(V v)
Устанавливает результат этого future в заданное значение, если этот future еще не был установлен или отменен.
protected void setException(Throwable t)
Приводит к тому, что этот future сообщает об ExecutionException с заданным исключением в качестве причины, если этот future уже был установлен или отменен.
String toString()
Возвращает строковое представление этого FutureTask.

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

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

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

exceptionNow, resultNow, state

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

FutureTask

public FutureTask(Callable<V> callable)
Создаёт FutureTask, который при выполнении будет выполнять заданный Callable.
Параметры:
callable - выполняемая задача
Исключения:
NullPointerException - если выполняемая задача равна null

FutureTask

public FutureTask(Runnable runnable, V result)
Создаёт FutureTask, который при выполнении будет выполнять заданную Runnable, и организует возврат get заданного результата при успешном завершении.
Параметры:
runnable - выполняемая задача
result - результат, который нужно вернуть при успешном завершении. Если вам не нужен конкретный результат, рассмотрите конструкции вида: Future<?> f = new FutureTask<Void>(runnable, null)
Исключения:
NullPointerException - если выполняемая задача равна null

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

isCancelled

public boolean isCancelled()
Описание скопировано из интерфейса: Future
Возвращает true, если эта задача была отменена до её нормального завершения.
Указано в:
isCancelled в интерфейсе Future<V>
Возвращает:
true , если эта задача была отменена до её завершения

isDone

public boolean isDone()
Описание скопировано из интерфейса: Future
Возвращает true, если эта задача завершена. Завершение может произойти из-за нормального завершения, исключения или отмены — во всех этих случаях этот метод вернёт true.
Указано в:
isDone в интерфейсе Future<V>
Возвращает:
true , если эта задача завершена

cancel

public boolean cancel(boolean mayInterruptIfRunning)
Описание скопировано из интерфейса: Future
Попытка отмены выполнения этой задачи. Этот метод не имеет эффекта, если задача уже завершена или отменена, или не могла быть отменена по какой-либо другой причине. В противном случае, если эта задача не началась при вызове cancel, эта задача никогда не должна выполняться. Если задача уже началась, то параметр mayInterruptIfRunning определяет, будет ли прерван поток, выполняющий эту задачу (если поток известен реализации) в попытке остановить задачу.

Значение, возвращаемое этим методом, не обязательно указывает, отменена ли задача; используйте Future.isCancelled().

Указано в:
cancel в интерфейсе Future<V>
Параметры:
mayInterruptIfRunning - true , если поток, выполняющий эту задачу, должен быть прерван (если поток известен реализации); в противном случае текущие задачи могут завершиться
Возвращает:
false , если задача не могла быть отменена, обычно потому, что она уже завершена; true в противном случае. Если две или более потоков вызывают отмену задачи, то по крайней мере один из них возвращает true. Реализации могут предоставлять более сильные гарантии.

get

public V get() throws InterruptedException, ExecutionException
Описание скопировано из интерфейса: Future
Если необходимо, ждёт завершения вычисления и затем извлекает его результат.
Указано в:
get в интерфейсе Future<V>
Возвращает:
вычисленный результат
Исключения:
CancellationException - если вычисление было отменено
InterruptedException - если текущий поток был прерван во время ожидания
ExecutionException - если вычисление выбросило исключение

get

public V get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
Описание скопировано из интерфейса: Future
Если необходимо, ожидает не более заданного времени завершения вычисления, а затем извлекает его результат, если он доступен.
Указано в:
get в интерфейсе Future<V>
Параметры:
timeout - максимальное время ожидания
unit - единица измерения времени параметра таймаута
Возвращает:
вычисленный результат
Исключения:
CancellationException - если вычисление было отменено
InterruptedException - если текущий поток был прерван во время ожидания
ExecutionException - если вычисление выбросило исключение
TimeoutException - если ожидание истекло

done

protected void done()
Защищённый метод, вызываемый, когда эта задача переходит в состояние isDone (как обычно, так и при отмене). Реализация по умолчанию ничего не делает. Подклассы могут переопределить этот метод для вызова обратных вызовов завершения или выполнения ведения бухгалтерского учёта. Обратите внимание, что вы можете запросить состояние внутри реализации этого метода, чтобы определить, была ли эта задача отменена.

set

protected void set(V v)
Устанавливает результат этого будущего в заданное значение, если это будущее ещё не установлено или не отменено.

Этот метод вызывается внутри методом run() при успешном выполнении вычисления.

Параметры:
v - значение

setException

protected void setException(Throwable t)
Приводит к тому, что это будущее сообщает об ExecutionException с заданным исключением в качестве причины, если это будущее ещё не установлено или не отменено.

Этот метод вызывается внутри методом run() при ошибке вычисления.

Параметры:
t - причина ошибки

run

public void run()
Описание скопировано из интерфейса: RunnableFuture
Устанавливает это будущее в результат его вычисления, если оно не было отменено.
Указано в:
run в интерфейсе Runnable
Указано в:
run в интерфейсе RunnableFuture<V>

runAndReset

protected boolean runAndReset()
Выполняет вычисление без установки его результата, а затем сбрасывает это будущее в начальное состояние, не делая этого, если вычисление сталкивается с исключением или отменяется. Это предназначено для использования с задачами, которые изначально выполняются более одного раза.
Возвращает:
true , если успешно выполнено и сброшено

toString

public String toString()
Возвращает строковое представление этого FutureTask.
Переопределяет:
toString в классе Object
Требования к реализации:
Реализация по умолчанию возвращает строку, идентифицирующую этот FutureTask, а также его состояние завершения. Состояние в скобках содержит одну из строк "Completed Normally", "Completed Exceptionally", "Cancelled", или "Not completed".
Возвращает:
строковое представление этого FutureTask

© 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/FutureTask.html

Spec-Zone.ru

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