Класс CompletableFuture<T>

Type Parameters:
T - Тип результата, возвращаемый методами join и get данного объекта
All Implemented Interfaces:
CompletionStage<T>, Future<T>
public class CompletableFuture<T>
extends Object
implements Future<T>, CompletionStage<T>

Объект Future, который можно явно завершить (установив его значение и состояние), и который можно использовать как CompletionStage, поддерживая зависимые функции и действия, которые срабатывают при его завершении.

Когда две или более потоки пытаются complete, completeExceptionally или cancel CompletableFuture, только один из них успешно выполняется.

Помимо этих и связанных с ними методов для прямого управления состоянием и результатами, CompletableFuture реализует интерфейс CompletionStage со следующими политиками:

  • Действия, указанные для зависимых завершений методов без асинхронности, могут выполняться потоком, который завершает текущий CompletableFuture, или любым другим вызывающим методом завершения.
  • Все методы асинхронности без явного аргумента Executor выполняются с помощью ForkJoinPool.commonPool() (если он не поддерживает уровень параллелизма не менее двух, в этом случае новый поток создаётся для выполнения каждой задачи). Это может быть переопределено для нестатических методов в подклассах путём определения метода defaultExecutor(). Для упрощения мониторинга, отладки и отслеживания все созданные асинхронные задачи являются экземплярами интерфейса маркера CompletableFuture.AsynchronousCompletionTask. Операции с задержками во времени могут использовать адаптерные методы, определённые в этом классе, например: supplyAsync(supplier, delayedExecutor(timeout, timeUnit)). Для поддержки методов с задержками и таймаутами этот класс поддерживает не более одного демона-потока для запуска и отмены действий, но не для их выполнения.
  • Все методы CompletionStage реализуются независимо от других общедоступных методов, поэтому поведение одного метода не изменяется из-за переопределений других в подклассах.
  • Все методы CompletionStage возвращают CompletableFutures. Для ограничения использования только методами, определёнными в интерфейсе CompletionStage, используйте метод minimalCompletionStage(). Или для обеспечения того, чтобы клиенты сами не изменяли будущее, используйте метод copy().

CompletableFuture также реализует Future со следующими политиками:

  • Поскольку (в отличие от FutureTask) этот класс не имеет прямого контроля над вычислением, которое приводит к его завершению, отмена обрабатывается как просто ещё один вид исключительного завершения. Метод cancel имеет тот же эффект, что и completeExceptionally(new CancellationException()). Метод isCompletedExceptionally() можно использовать для определения, завершился ли CompletableFuture каким-либо исключительным образом.
  • В случае исключительного завершения с CompletionException методы get() и get(long, TimeUnit) выбрасывают ExecutionException с той же причиной, что и в соответствующем CompletionException. Для упрощения использования в большинстве случаев этот класс также определяет методы join() и getNow(T), которые вместо этого напрямую выбрасывают CompletionException в этих случаях.

Аргументы, используемые для передачи результата завершения (то есть, для параметров типа T) для методов, принимающих их, могут быть null, но передача null в качестве любого другого параметра приведёт к выбросу NullPointerException.

Подклассы этого класса обычно должны переопределять метод «виртуального конструктора» newIncompleteFuture(), который устанавливает конкретный тип, возвращаемый методами CompletionStage. Например, вот класс, который подставляет другой стандартный Executor и отключает методы obtrude:

class MyCompletableFuture<T> extends CompletableFuture<T> {
   static final Executor myExecutor = ...;
   public MyCompletableFuture() { }
   public <U> CompletableFuture<U> newIncompleteFuture() {
     return new MyCompletableFuture<U>(); }
   public Executor defaultExecutor() {
     return myExecutor; }
   public void obtrudeValue(T value) {
     throw new UnsupportedOperationException(); }
   public void obtrudeException(Throwable ex) {
     throw new UnsupportedOperationException(); }
 }
Since:
1.8

Вложенные классы

Модификатор и тип Класс Описание
static interface  CompletableFuture.AsynchronousCompletionTask

Интерфейс-маркер, определяющий асинхронные задачи, создаваемые методами async.

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

Конструктор Описание
CompletableFuture()

Создаёт новый незавершенный CompletableFuture.

Методы

Модификатор и тип Метод Описание
static CompletableFuture<Void> allOf​(CompletableFuture<?>... cfs)

Возвращает новый CompletableFuture, который завершается, когда все заданные CompletableFutures завершатся.

static CompletableFuture<Object> anyOf​(CompletableFuture<?>... cfs)

Возвращает новый CompletableFuture, который завершается, когда любой из заданных CompletableFutures завершится, с тем же результатом.

boolean cancel​(boolean mayInterruptIfRunning)

Если ещё не завершён, завершает этот CompletableFuture с CancellationException.

boolean complete​(T value)

Если ещё не завершён, устанавливает значение, возвращаемое методом get() и родственные методы, заданному значению.

CompletableFuture<T> completeAsync​(Supplier<? extends T> supplier)

Завершает этот CompletableFuture результатом заданной функции Supplier, вызванной из асинхронной задачи с использованием по умолчанию executor.

CompletableFuture<T> completeAsync​(Supplier<? extends T> supplier, Executor executor)

Завершает этот CompletableFuture результатом заданной функции Supplier, вызванной из асинхронной задачи с использованием заданного executor.

static <U> CompletableFuture<U> completedFuture​(U value)

Возвращает новый CompletableFuture, который уже завершён заданным значением.

static <U> CompletionStage<U> completedStage​(U value)

Возвращает новый CompletionStage, который уже завершён заданным значением и поддерживает только те методы в интерфейсе CompletionStage.

boolean completeExceptionally​(Throwable ex)

Если ещё не завершён, вызывает вызовы get() и родственных методов для броска заданного исключения.

CompletableFuture<T> completeOnTimeout​(T value, long timeout, TimeUnit unit)

Завершает этот CompletableFuture заданным значением, если он не завершён иначе до заданного таймаута.

CompletableFuture<T> copy()

Возвращает новый CompletableFuture, который завершается нормально со значением, таким же, как у этого CompletableFuture, когда он завершается нормально.

Executor defaultExecutor()

Возвращает по умолчанию Executor, используемый для асинхронных методов, которые не указывают Executor.

static Executor delayedExecutor​(long delay, TimeUnit unit)

Возвращает новый Executor, который отправляет задачу в executor по умолчанию после заданной задержки (или без задержки, если значение не положительно).

static Executor delayedExecutor​(long delay, TimeUnit unit, Executor executor)

Возвращает новый Executor, который отправляет задачу в заданный базовый executor после заданной задержки (или без задержки, если значение не положительно).

CompletableFuture<T> exceptionally​(Function<Throwable,​? extends T> fn)

Возвращает новый CompletableFuture, который завершается, когда этот CompletableFuture завершается, со значением заданной функции исключения, вызывающего завершение этого CompletableFuture при исключительном завершении; в противном случае, если этот CompletableFuture завершается нормально, то возвращаемый CompletableFuture также завершается нормально с тем же значением.

static <U> CompletableFuture<U> failedFuture​(Throwable ex)

Возвращает новый CompletableFuture, который уже завершён исключительным образом заданным исключением.

static <U> CompletionStage<U> failedStage​(Throwable ex)

Возвращает новый CompletionStage, который уже завершён исключительным образом заданным исключением и поддерживает только те методы в интерфейсе CompletionStage.

T get()

Если необходимо, ждёт завершения этого будущего и возвращает его результат.

T get​(long timeout, TimeUnit unit)

Если необходимо, ждёт не более заданного времени завершения этого будущего и возвращает его результат, если доступен.

T getNow​(T valueIfAbsent)

Возвращает значение результата (или бросает любое встреченное исключение), если завершён, иначе возвращает значение valueIfAbsent.

int getNumberOfDependents()

Возвращает предполагаемое количество CompletableFutures, завершения которых ожидают завершения этого CompletableFuture.

boolean isCancelled()

Возвращает true, если этот CompletableFuture был отменён до нормального завершения.

boolean isCompletedExceptionally()

Возвращает true, если этот CompletableFuture завершился с исключением каким-либо образом.

boolean isDone()

Возвращает true если завершён каким-либо образом: нормально, с исключением или с отменён.

T join()

Возвращает значение результата при завершении, или бросает (непроверенное) исключение, если завершился исключительным образом.

CompletionStage<T> minimalCompletionStage()

Возвращает новый CompletionStage, который завершается нормально со значением, таким же, как у этого CompletableFuture, когда он завершается нормально, и не может быть завершён независимо или иным образом использован не по определению методов интерфейса CompletionStage.

<U> CompletableFuture<U> newIncompleteFuture()

Возвращает новый незавершенный CompletableFuture типа, который должен быть возвращен методом CompletionStage.

void obtrudeException​(Throwable ex)

Принудительно заставляет последующие вызовы метода get() и родственных методов бросить заданное исключение, независимо от того, завершён ли он или нет.

void obtrudeValue​(T value)

Принудительно устанавливает или сбрасывает значение, которое впоследствии возвращается методом get() и родственные методы, вне зависимости от того, завершён ли он или нет.

CompletableFuture<T> orTimeout​(long timeout, TimeUnit unit)

Исключительно завершает этот CompletableFuture с TimeoutException, если не завершился иначе до заданного таймаута.

static CompletableFuture<Void> runAsync​(Runnable runnable)

Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняемой в ForkJoinPool.commonPool() после выполнения заданного действия.

static CompletableFuture<Void> runAsync​(Runnable runnable, Executor executor)

Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняемой в заданном executor после выполнения заданного действия.

static <U> CompletableFuture<U> supplyAsync​(Supplier<U> supplier)

Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняемой в ForkJoinPool.commonPool() со значением, полученным путём вызова заданного Supplier.

static <U> CompletableFuture<U> supplyAsync​(Supplier<U> supplier, Executor executor)

Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняемой в заданном executor со значением, полученным путём вызова заданного Supplier.

CompletableFuture<T> toCompletableFuture()

Возвращает этот CompletableFuture.

String toString()

Возвращает строку, идентифицирующую этот CompletableFuture, а также его состояние завершения.

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

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

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

acceptEither, acceptEitherAsync, acceptEitherAsync, applyToEither, applyToEitherAsync, applyToEitherAsync, handle, handleAsync, handleAsync, runAfterBoth, runAfterBothAsync, runAfterBothAsync, runAfterEither, runAfterEitherAsync, runAfterEitherAsync, thenAccept, thenAcceptAsync, thenAcceptAsync, thenAcceptBoth, thenAcceptBothAsync, thenAcceptBothAsync, thenApply, thenApplyAsync, thenApplyAsync, thenCombine, thenCombineAsync, thenCombineAsync, thenCompose, thenComposeAsync, thenComposeAsync, thenRun, thenRunAsync, thenRunAsync, whenComplete, whenCompleteAsync, whenCompleteAsync

Детали конструкторов

CompletableFuture

public CompletableFuture()

Создаёт новый незавершенный CompletableFuture.

Методы

supplyAsync

public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier)

Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняемой в ForkJoinPool.commonPool(), со значением, полученным вызовом данного Supplier.

Параметры типа:
U - тип возвращаемого значения функции
Параметры:
supplier - функция, возвращающая значение, используемое для завершения возвращаемого CompletableFuture
Возвращает:
новый CompletableFuture

supplyAsync

public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier,
                                                   Executor executor)

Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняемой в заданном исполнителе, со значением, полученным вызовом данного Supplier.

Параметры типа:
U - тип возвращаемого значения функции
Параметры:
supplier - функция, возвращающая значение, используемое для завершения возвращаемого CompletableFuture
executor - исполнитель для асинхронного выполнения
Возвращает:
новый CompletableFuture

runAsync

public static CompletableFuture<Void> runAsync(Runnable runnable)

Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняемой в ForkJoinPool.commonPool() после выполнения заданного действия.

Параметры:
runnable - действие, выполняемое перед завершением возвращаемого CompletableFuture
Возвращает:
новый CompletableFuture

runAsync

public static CompletableFuture<Void> runAsync(Runnable runnable,
                                               Executor executor)

Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняемой в заданном исполнителе после выполнения заданного действия.

Параметры:
runnable - действие, выполняемое перед завершением возвращаемого CompletableFuture
executor - исполнитель для асинхронного выполнения
Возвращает:
новый CompletableFuture

completedFuture

public static <U> CompletableFuture<U> completedFuture(U value)

Возвращает новый CompletableFuture, который уже завершён заданным значением.

Параметры типа:
U - тип значения
Параметры:
value - значение
Возвращает:
завершённый CompletableFuture

isDone

public boolean isDone()

Возвращает true если завершён любым способом: обычно, с исключением или через отмену.

Определено в:
isDone в интерфейсе Future<T>
Возвращает:
true если завершён

get

public T get()
      throws InterruptedException,
             ExecutionException

Ждёт завершения этого будущего, если необходимо, а затем возвращает его результат.

Определено в:
get в интерфейсе Future<T>
Возвращает:
значение результата
Исключения:
CancellationException - если это будущее было отменено
ExecutionException - если это будущее завершилось с исключением
InterruptedException - если текущая нить была прервана во время ожидания

get

public T get(long timeout,
             TimeUnit unit)
      throws InterruptedException,
             ExecutionException,
             TimeoutException

Ждёт завершения этого будущего не более чем в течение заданного времени и возвращает его результат, если он доступен.

Определено в:
get в интерфейсе Future<T>
Параметры:
timeout - максимальное время ожидания
unit - единица измерения времени аргумента тайм-аута
Возвращает:
значение результата
Исключения:
CancellationException - если это будущее было отменено
ExecutionException - если это будущее завершилось с исключением
InterruptedException - если текущая нить была прервана во время ожидания
TimeoutException - если ожидание истекло

join

public T join()

Возвращает значение результата при завершении или выбрасывает (непроверяемое) исключение, если завершение произошло с исключением. Для лучшего соответствия использованию общих функциональных форм, если вычисление, участвующее в завершении этого CompletableFuture, выбросило исключение, этот метод выбрасывает (непроверяемое) CompletionException с базовым исключением в качестве причины.

Возвращает:
значение результата
Исключения:
CancellationException - если вычисление было отменено
CompletionException - если это будущее завершилось с исключением или вычисление завершения выбросило исключение

getNow

public T getNow(T valueIfAbsent)

Возвращает значение результата (или выбрасывает любое возникшее исключение) при завершении, иначе возвращает данное значение valueIfAbsent.

Параметры:
valueIfAbsent - значение, которое нужно вернуть, если не завершено
Возвращает:
значение результата, если завершено, иначе заданное значение valueIfAbsent
Исключения:
CancellationException - если вычисление было отменено
CompletionException - если это будущее завершилось с исключением или вычисление завершения выбросило исключение

complete

public boolean complete(T value)

Если не завершено, устанавливает значение, возвращаемое методом get() и связанными методами, в заданное значение.

Параметры:
value - значение результата
Возвращает:
true если этот вызов привел к переходу этого CompletableFuture в завершённое состояние, иначе false

completeExceptionally

public boolean completeExceptionally(Throwable ex)

Если не завершено, вызывает вызовы метода get() и связанных методов, чтобы они выбрасывали данное исключение.

Параметры:
ex - исключение
Возвращает:
true если этот вызов привел к переходу этого CompletableFuture в завершённое состояние, иначе false

toCompletableFuture

public CompletableFuture<T> toCompletableFuture()

Возвращает этот CompletableFuture.

Определено в:
toCompletableFuture в интерфейсе CompletionStage<T>
Возвращает:
этот CompletableFuture

exceptionally

public CompletableFuture<T> exceptionally(Function<Throwable,​? extends T> fn)

Возвращает новый CompletableFuture, который завершается при завершении этого CompletableFuture, с результатом данной функции исключения, вызывающего завершение CompletableFuture при его завершении с исключением; в противном случае, если это CompletableFuture завершается обычно, то возвращаемый CompletableFuture также завершается обычно с тем же значением. Примечание: более гибкие версии этой функциональности доступны с помощью методов whenComplete и handle.

Определено в:
exceptionally в интерфейсе CompletionStage<T>
Параметры:
fn - функция для вычисления значения возвращаемого CompletableFuture, если это CompletableFuture завершилось с исключением
Возвращает:
новый CompletableFuture

allOf

public static CompletableFuture<Void> allOf(CompletableFuture<?>... cfs)

Возвращает новый CompletableFuture, который завершается, когда все заданные CompletableFuture завершатся. Если какое-либо из заданных CompletableFuture завершится с исключением, то возвращаемый CompletableFuture также сделает это, с CompletionException, содержащим это исключение в качестве причины. В противном случае результаты, если таковые имеются, заданных CompletableFuture не отображаются в возвращаемом CompletableFuture, но могут быть получены путем их индивидуального просмотра. Если заданных CompletableFuture нет, возвращает CompletableFuture, завершенный со значением null.

Среди применений этого метода — ожидание завершения набора независимых CompletableFuture перед продолжением программы, как в: CompletableFuture.allOf(c1, c2, c3).join();.

Параметры:
cfs - CompletableFuture
Возвращает:
новый CompletableFuture, который завершается, когда все заданные CompletableFuture завершатся
Исключения:
NullPointerException - если массив или какой-либо из его элементов null

anyOf

public static CompletableFuture<Object> anyOf(CompletableFuture<?>... cfs)

Возвращает новый CompletableFuture, который завершается, когда любое из заданных CompletableFuture завершится, с тем же результатом. В противном случае, если оно завершилось с исключением, возвращаемый CompletableFuture также делает это, с CompletionException, содержащим это исключение в качестве причины. Если заданных CompletableFuture нет, возвращает незавершенный CompletableFuture.

Параметры:
cfs - CompletableFuture
Возвращает:
новый CompletableFuture, который завершается результатом или исключением любого из заданных CompletableFuture, когда один завершится
Исключения:
NullPointerException - если массив или какой-либо из его элементов null

cancel

public boolean cancel(boolean mayInterruptIfRunning)

Если не завершено, завершает это CompletableFuture с CancellationException. Зависимые CompletableFuture, которые еще не завершились, также завершатся с исключением, с CompletionException вызванным этим CancellationException.

Определено в:
cancel в интерфейсе Future<T>
Параметры:
mayInterruptIfRunning - это значение не влияет в этой реализации, потому что прерывания не используются для управления обработкой.
Возвращает:
true если эта задача теперь отменена

isCancelled

public boolean isCancelled()

Возвращает true если этот CompletableFuture был отменён перед нормальным завершением.

Определено в:
isCancelled в интерфейсе Future<T>
Возвращает:
true если этот CompletableFuture был отменён перед нормальным завершением

isCompletedExceptionally

public boolean isCompletedExceptionally()

Возвращает true если этот CompletableFuture завершился с исключением каким-либо способом. Возможные причины включают отмену, явный вызов completeExceptionally, и внезапное завершение действия CompletionStage.

Возвращает:
true если этот CompletableFuture завершился с исключением

obtrudeValue

public void obtrudeValue(T value)

Принудительно устанавливает или сбрасывает значение, возвращаемое впоследствии методом get() и связанными методами, независимо от того, завершено ли оно уже. Данный метод предназначен только для действий по восстановлению после ошибок и даже в таких ситуациях может привести к продолжению зависимых завершений, используя установленные, а не перезаписанные результаты.

Параметры:
value - значение завершения

obtrudeException

public void obtrudeException(Throwable ex)

Принудительно заставляет последующие вызовы метода get() и связанных методов генерировать указанную исключение, независимо от того, завершено ли оно уже. Данный метод предназначен только для действий по восстановлению после ошибок и даже в таких ситуациях может привести к продолжению зависимых завершений, используя установленные, а не перезаписанные результаты.

Параметры:
ex - исключение
Исключения:
NullPointerException - если исключение равно null

getNumberOfDependents

public int getNumberOfDependents()

Возвращает предполагаемое количество CompletableFutures, завершение которых ожидает завершения этого CompletableFuture. Данный метод предназначен для мониторинга состояния системы, а не для управления синхронизацией.

Возвращает:
количество зависимых CompletableFutures

toString

public String toString()

Возвращает строку, идентифицирующую этот CompletableFuture, а также его состояние завершения. Состояние, в скобках, содержит строку "Completed Normally" или строку "Completed Exceptionally", или строку "Not completed", за которой следует количество CompletableFutures, зависящих от его завершения, если таковые имеются.

Переопределяет:
toString в классе Object
Возвращает:
строку, идентифицирующую этот CompletableFuture, а также его состояние

newIncompleteFuture

public <U> CompletableFuture<U> newIncompleteFuture()

Возвращает новый незавершенный CompletableFuture типа, который должен быть возвращен методом CompletionStage. Подклассы обычно должны переопределять этот метод, чтобы вернуть экземпляр того же класса, что и этот CompletableFuture. По умолчанию возвращается экземпляр класса CompletableFuture.

Параметры типа:
U - тип значения
Возвращает:
новый CompletableFuture
С:
9

defaultExecutor

public Executor defaultExecutor()

Возвращает используемый по умолчанию Executor для асинхронных методов, которые не указывают Executor. Этот класс использует ForkJoinPool.commonPool(), если он поддерживает более одной параллельной нити, в противном случае — Executor, использующий одну нить на каждую асинхронную задачу. Этот метод можно переопределить в подклассах, чтобы вернуть Executor, обеспечивающий как минимум одну независимую нить.

Возвращает:
executor
С:
9

copy

public CompletableFuture<T> copy()

Возвращает новый CompletableFuture, который завершается успешно со значением, совпадающим со значением этого CompletableFuture, при его успешном завершении. Если этот CompletableFuture завершается с исключением, то возвращаемый CompletableFuture завершается с исключением CompletionException, причиной которого является это исключение. Поведение эквивалентно thenApply(x -> x). Этот метод может быть полезен в качестве «защитного копирования», чтобы предотвратить завершение клиентов, сохраняя при этом возможность организации зависимых действий.

Возвращает:
новый CompletableFuture
С:
9

minimalCompletionStage

public CompletionStage<T> minimalCompletionStage()

Возвращает новый CompletionStage, который завершается успешно со значением, совпадающим со значением этого CompletableFuture, при его успешном завершении, и не может быть независимо завершён или использован другими способами, не определёнными методами интерфейса CompletionStage. Если этот CompletableFuture завершается с исключением, то возвращаемый CompletionStage завершается с исключением CompletionException, причиной которого является это исключение.

Если не переопределён подклассом, новый не минимальный CompletableFuture со всеми доступными методами может быть получен из минимального CompletionStage с помощью toCompletableFuture(). Например, завершение минимального этапа может быть ожидено

minimalStage.toCompletableFuture().join();
Возвращает:
новый CompletionStage
С:
9

completeAsync

public CompletableFuture<T> completeAsync(Supplier<? extends T> supplier,
                                          Executor executor)

Завершает этот CompletableFuture результатом заданной функции Supplier, вызванной из асинхронной задачи с использованием заданного executor.

Параметры:
supplier - функция, возвращающая значение, используемое для завершения этого CompletableFuture
executor - executor, используемый для асинхронного выполнения
Возвращает:
этот CompletableFuture
С:
9

completeAsync

public CompletableFuture<T> completeAsync(Supplier<? extends T> supplier)

Завершает этот CompletableFuture результатом заданной функции Supplier, вызванной из асинхронной задачи с использованием executor по умолчанию.

Параметры:
supplier - функция, возвращающая значение, используемое для завершения этого CompletableFuture
Возвращает:
этот CompletableFuture
С:
9

orTimeout

public CompletableFuture<T> orTimeout(long timeout,
                                      TimeUnit unit)

Завершает этот CompletableFuture с исключением TimeoutException, если он не завершён другим способом до истечения заданного таймаута.

Параметры:
timeout - время ожидания перед исключительным завершением TimeoutException, в единицах unit
unit - TimeUnit определяющий, как интерпретировать параметр timeout
Возвращает:
этот CompletableFuture
С:
9

completeOnTimeout

public CompletableFuture<T> completeOnTimeout(T value,
                                              long timeout,
                                              TimeUnit unit)

Завершает этот CompletableFuture заданным значением, если он не завершён другим способом до истечения заданного таймаута.

Параметры:
value - значение, используемое при истечении таймаута
timeout - время ожидания перед успешным завершением заданным значением, в единицах unit
unit - TimeUnit определяющий, как интерпретировать параметр timeout
Возвращает:
этот CompletableFuture
С:
9

delayedExecutor

public static Executor delayedExecutor(long delay,
                                       TimeUnit unit,
                                       Executor executor)

Возвращает новый Executor, который отправляет задачу в заданный базовый executor после заданной задержки (или без задержки, если она не положительная). Каждая задержка начинается при вызове метода execute возвращаемого executor.

Параметры:
delay - время задержки, в единицах unit
unit - TimeUnit определяющий, как интерпретировать параметр delay
executor - базовый executor
Возвращает:
новый delayed executor
С:
9

delayedExecutor

public static Executor delayedExecutor(long delay,
                                       TimeUnit unit)

Возвращает новый Executor, который отправляет задачу в executor по умолчанию после заданной задержки (или без задержки, если она не положительная). Каждая задержка начинается при вызове метода execute возвращаемого executor.

Параметры:
delay - время задержки, в единицах unit
unit - TimeUnit определяющий, как интерпретировать параметр delay
Возвращает:
новый delayed executor
С:
9

completedStage

public static <U> CompletionStage<U> completedStage(U value)

Возвращает новый CompletionStage, который уже завершен заданным значением и поддерживает только те методы из интерфейса CompletionStage.

Параметры типа:
U - тип значения
Параметры:
value - значение
Возвращает:
завершенный CompletionStage
С:
9

failedFuture

public static <U> CompletableFuture<U> failedFuture(Throwable ex)

Возвращает новый CompletableFuture, который уже завершен с исключением.

Параметры типа:
U - тип значения
Параметры:
ex - исключение
Возвращает:
исключительно завершенный CompletableFuture
С:
9

failedStage

public static <U> CompletionStage<U> failedStage(Throwable ex)

Возвращает новый CompletionStage, который уже завершен с исключением и поддерживает только те методы из интерфейса CompletionStage.

Параметры типа:
U - тип значения
Параметры:
ex - исключение
Возвращает:
исключительно завершенный CompletionStage
С:
9

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

Spec-Zone .ru
спецификации, руководства, описания, API