Класс CompletableFuture<T>
- java.lang.Object
-
- java.util.concurrent.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 | Интерфейс-маркер, определяющий асинхронные задачи, создаваемые методами |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
CompletableFuture() | Создаёт новый незавершенный CompletableFuture. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
static CompletableFuture<Void> | allOf(CompletableFuture<?>... cfs) | Возвращает новый CompletableFuture, который завершается, когда все заданные CompletableFutures завершатся. |
static CompletableFuture<Object> | anyOf(CompletableFuture<?>... cfs) | Возвращает новый CompletableFuture, который завершается, когда любой из заданных CompletableFutures завершится, с тем же результатом. |
boolean | cancel(boolean mayInterruptIfRunning) | Если ещё не завершён, завершает этот CompletableFuture с |
boolean | complete(T value) | Если ещё не завершён, устанавливает значение, возвращаемое методом |
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, который уже завершён заданным значением и поддерживает только те методы в интерфейсе |
boolean | completeExceptionally(Throwable ex) | Если ещё не завершён, вызывает вызовы |
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, который уже завершён исключительным образом заданным исключением и поддерживает только те методы в интерфейсе |
T | get() | Если необходимо, ждёт завершения этого будущего и возвращает его результат. |
T | get(long timeout,
TimeUnit unit) | Если необходимо, ждёт не более заданного времени завершения этого будущего и возвращает его результат, если доступен. |
T | getNow(T valueIfAbsent) | Возвращает значение результата (или бросает любое встреченное исключение), если завершён, иначе возвращает значение valueIfAbsent. |
int | getNumberOfDependents() | Возвращает предполагаемое количество CompletableFutures, завершения которых ожидают завершения этого CompletableFuture. |
boolean | isCancelled() | Возвращает |
boolean | isCompletedExceptionally() | Возвращает |
boolean | isDone() | Возвращает |
T | join() | Возвращает значение результата при завершении, или бросает (непроверенное) исключение, если завершился исключительным образом. |
CompletionStage<T> | minimalCompletionStage() | Возвращает новый CompletionStage, который завершается нормально со значением, таким же, как у этого CompletableFuture, когда он завершается нормально, и не может быть завершён независимо или иным образом использован не по определению методов интерфейса |
<U> CompletableFuture<U> | newIncompleteFuture() | Возвращает новый незавершенный CompletableFuture типа, который должен быть возвращен методом CompletionStage. |
void | obtrudeException(Throwable ex) | Принудительно заставляет последующие вызовы метода |
void | obtrudeValue(T value) | Принудительно устанавливает или сбрасывает значение, которое впоследствии возвращается методом |
CompletableFuture<T> | orTimeout(long timeout,
TimeUnit unit) | Исключительно завершает этот CompletableFuture с |
static CompletableFuture<Void> | runAsync(Runnable runnable) | Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняемой в |
static CompletableFuture<Void> | runAsync(Runnable runnable,
Executor executor) | Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняемой в заданном executor после выполнения заданного действия. |
static <U> CompletableFuture<U> | supplyAsync(Supplier<U> supplier) | Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняемой в |
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 если завершён любым способом: обычно, с исключением или через отмену.
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