Spec-Zone.ru › OpenJDK 17

Класс FutureTask<V>

java.lang.Object
java.util.concurrent.FutureTask<V>
Type Parameters:
V - Тип результата, возвращаемый методами этого FutureTask
All Implemented Interfaces:
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

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

Конструктор Описание
FutureTask(Runnable runnable, V result)
Создаёт FutureTask, который при запуске выполнит указанный Runnable, и организует возврат указанного результата при успешном завершении.
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()
Устанавливает результат этой FutureTask в результат её вычисления, если она не была отменена.
protected boolean runAndReset()
Выполняет вычисление без установки результата, а затем сбрасывает эту FutureTask в начальное состояние, если при этом вычисление не встретило исключение или не было отменено.
protected void set(V v)
Устанавливает результат этой FutureTask в заданное значение, если эта FutureTask ещё не была установлена или отменена.
protected void setException(Throwable t)
Устанавливает для этой FutureTask исключение ExecutionException с указанным исключением в качестве причины, если эта FutureTask ещё не была установлена или отменена.
String toString()
Возвращает строковое представление этой FutureTask.

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

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

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

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>
См. также:
  • Thread.run()

runAndReset

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

toString

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

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

Spec-Zone.ru

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