- 类型参数:
-
T
- 由此future的join
和get
方法返回的结果类型
- 所有实现的接口:
-
CompletionStage<T>
,Future<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()
。或者为了确保客户端不修改future本身,使用方法copy()
。
CompletableFuture还实现了接口Future
,具有以下策略:
- 由于(与
FutureTask
不同)此类无法直接控制导致其完成的计算,因此取消被视为异常完成的另一种形式。方法cancel
的效果与completeExceptionally(new CancellationException())
相同。方法isCompletedExceptionally()
可用于确定CompletableFuture是否以任何异常方式完成。 - 在使用CompletionException异常完成的情况下,方法
get()
和get(long, TimeUnit)
会抛出一个与相应CompletionException中保存的原因相同的ExecutionException
。为了在大多数情况下简化使用,此类还定义了方法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(); }
}
- 自Java版本:
- 1.8
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
一个标记接口,用于标识由async
方法生成的异步任务。Nested classes/interfaces declared in interface java.util.concurrent.Future
Future.State
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionacceptEither
(CompletionStage<? extends T> other, Consumer<? super T> action) 返回一个新的CompletionStage,当此或另一个给定阶段正常完成时,将使用相应的结果作为参数执行提供的操作。acceptEitherAsync
(CompletionStage<? extends T> other, Consumer<? super T> action) 返回一个新的CompletionStage,当此或另一个给定阶段正常完成时,将使用此阶段的默认异步执行设施执行提供的操作,将相应的结果作为参数。acceptEitherAsync
(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor) 返回一个新的CompletionStage,当此或另一个给定阶段正常完成时,将使用提供的执行程序执行提供的操作,将相应的结果作为参数。static CompletableFuture
<Void> allOf
(CompletableFuture<?>... cfs) 返回一个新的CompletableFuture,当所有给定的CompletableFutures完成时完成。static CompletableFuture
<Object> anyOf
(CompletableFuture<?>... cfs) 返回一个新的CompletableFuture,当任何给定的CompletableFutures完成时,具有相同的结果。<U> CompletableFuture
<U> applyToEither
(CompletionStage<? extends T> other, Function<? super T, U> fn) 返回一个新的CompletionStage,当此或另一个给定阶段正常完成时,将使用相应的结果作为参数执行提供的函数。<U> CompletableFuture
<U> applyToEitherAsync
(CompletionStage<? extends T> other, Function<? super T, U> fn) 返回一个新的CompletionStage,当此或另一个给定阶段正常完成时,将使用此阶段的默认异步执行设施执行提供的函数,将相应的结果作为参数。<U> CompletableFuture
<U> applyToEitherAsync
(CompletionStage<? extends T> other, Function<? super T, U> fn, Executor executor) 返回一个新的CompletionStage,当此或另一个给定阶段正常完成时,将使用提供的执行程序执行提供的函数,将相应的结果作为参数。boolean
cancel
(boolean mayInterruptIfRunning) 如果尚未完成,则使用CancellationException
完成此CompletableFuture。boolean
如果尚未完成,则将由get()
和相关方法返回的值设置为给定值。completeAsync
(Supplier<? extends T> supplier) 使用默认执行程序从异步任务中调用给定Supplier函数的结果来完成此CompletableFuture。completeAsync
(Supplier<? extends T> supplier, Executor executor) 使用给定执行程序从异步任务中调用给定Supplier函数的结果来完成此CompletableFuture。static <U> CompletableFuture
<U> completedFuture
(U value) 返回一个已使用给定值完成的新CompletableFuture。static <U> CompletionStage
<U> completedStage
(U value) 返回一个已使用给定值完成且仅支持接口CompletionStage
中方法的新CompletionStage。boolean
如果尚未完成,则使调用get()
和相关方法抛出给定异常。completeOnTimeout
(T value, long timeout, TimeUnit unit) 如果尚未完成,则在给定超时之前使用给定值完成此CompletableFuture。copy()
返回一个新的CompletableFuture,当此CompletableFuture正常完成时,以相同的值正常完成。返回用于未指定Executor的异步方法的默认Executor。static Executor
delayedExecutor
(long delay, TimeUnit unit) 返回一个新的Executor,在给定延迟后(如果非正延迟则没有延迟)将任务提交给默认执行程序。static Executor
delayedExecutor
(long delay, TimeUnit unit, Executor executor) 返回一个新的Executor,在给定延迟后(如果非正延迟则没有延迟)将任务提交给给定基本执行程序。exceptionally
(Function<Throwable, ? extends T> fn) 返回一个新的CompletionStage,当此阶段异常完成时,将使用此阶段的异常作为提供的函数的参数执行。static <U> CompletableFuture
<U> 返回一个已使用给定异常异常完成的新CompletableFuture。static <U> CompletionStage
<U> failedStage
(Throwable ex) 返回一个已使用给定异常异常完成且仅支持接口CompletionStage
中方法的新CompletionStage。get()
等待此future完成,然后返回其结果。等待最多给定时间以使此future完成,然后返回其结果(如果可用)。如果已完成,则返回结果值(或抛出任何遇到的异常),否则返回给定的valueIfAbsent。int
返回等待此CompletableFuture完成的CompletableFuture数量的估计值。<U> CompletableFuture
<U> handle
(BiFunction<? super T, Throwable, ? extends U> fn) 返回一个新的CompletionStage,当此阶段正常或异常完成时,将使用此阶段的结果和异常作为提供的函数的参数执行。<U> CompletableFuture
<U> handleAsync
(BiFunction<? super T, Throwable, ? extends U> fn) 返回一个新的CompletionStage,当此阶段正常或异常完成时,将使用此阶段的结果和异常作为参数使用此阶段的默认异步执行设施执行提供的函数。<U> CompletableFuture
<U> handleAsync
(BiFunction<? super T, Throwable, ? extends U> fn, Executor executor) 返回一个新的CompletionStage,当此阶段正常或异常完成时,将使用此阶段的结果和异常作为参数使用提供的执行程序执行提供的函数。boolean
如果此CompletableFuture在正常完成之前被取消,则返回true
。boolean
如果此CompletableFuture以任何方式异常完成,则返回true
。boolean
isDone()
返回true
,如果以任何方式完成:正常完成、异常完成或通过取消完成。join()
当完成时返回结果值,或者如果异常完成则抛出(未检查的)异常。返回一个新的CompletionStage,当它正常完成时,与此CompletableFuture具有相同的值,不能独立完成或以接口CompletionStage
方法未定义的方式使用。<U> CompletableFuture
<U> 返回一个新的未完成的CompletableFuture,类型与CompletionStage方法返回的类型相同。void
强制使方法get()
及相关方法的后续调用抛出给定异常,无论是否已经完成。void
obtrudeValue
(T value) 强制设置或重置后续由方法get()
及相关方法返回的值,无论是否已经完成。如果在给定超时之前未以其他方式完成,则异常地使用TimeoutException
完成此CompletableFuture。runAfterBoth
(CompletionStage<?> other, Runnable action) 返回一个新的CompletionStage,当此和另一个给定阶段都正常完成时,执行给定操作。runAfterBothAsync
(CompletionStage<?> other, Runnable action) 返回一个新的CompletionStage,当此和另一个给定阶段都正常完成时,使用此阶段的默认异步执行设施执行给定操作。runAfterBothAsync
(CompletionStage<?> other, Runnable action, Executor executor) 返回一个新的CompletionStage,当此和另一个给定阶段都正常完成时,使用提供的执行器执行给定操作。runAfterEither
(CompletionStage<?> other, Runnable action) 返回一个新的CompletionStage,当此或另一个给定阶段正常完成时,执行给定操作。runAfterEitherAsync
(CompletionStage<?> other, Runnable action) 返回一个新的CompletionStage,当此或另一个给定阶段正常完成时,使用此阶段的默认异步执行设施执行给定操作。runAfterEitherAsync
(CompletionStage<?> other, Runnable action, Executor executor) 返回一个新的CompletionStage,当此或另一个给定阶段正常完成时,使用提供的执行器执行给定操作。static CompletableFuture
<Void> 返回一个新的CompletableFuture,由在ForkJoinPool.commonPool()
中运行的任务异步完成,之后运行给定操作。static CompletableFuture
<Void> 返回一个新的CompletableFuture,由在给定执行器中运行的任务异步完成,之后运行给定操作。static <U> CompletableFuture
<U> supplyAsync
(Supplier<U> supplier) 返回一个新的CompletableFuture,由在ForkJoinPool.commonPool()
中运行的任务异步完成,通过调用给定Supplier获得值。static <U> CompletableFuture
<U> supplyAsync
(Supplier<U> supplier, Executor executor) 返回一个新的CompletableFuture,由在给定执行器中运行的任务异步完成,通过调用给定Supplier获得值。thenAccept
(Consumer<? super T> action) 返回一个新的CompletionStage,当此阶段正常完成时,使用此阶段的结果作为提供的操作的参数执行。thenAcceptAsync
(Consumer<? super T> action) 返回一个新的CompletionStage,当此阶段正常完成时,使用此阶段的结果作为提供的操作的参数,使用此阶段的默认异步执行设施执行。thenAcceptAsync
(Consumer<? super T> action, Executor executor) 返回一个新的CompletionStage,当此阶段正常完成时,使用此阶段的结果作为提供的操作的参数,使用提供的执行器执行。<U> CompletableFuture
<Void> thenAcceptBoth
(CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action) 返回一个新的CompletionStage,当此和另一个给定阶段都正常完成时,使用两个结果作为提供的操作的参数执行。<U> CompletableFuture
<Void> thenAcceptBothAsync
(CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action) 返回一个新的CompletionStage,当此和另一个给定阶段都正常完成时,使用两个结果作为提供的操作的参数,使用此阶段的默认异步执行设施执行。<U> CompletableFuture
<Void> thenAcceptBothAsync
(CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action, Executor executor) 返回一个新的CompletionStage,当此和另一个给定阶段都正常完成时,使用两个结果作为提供的操作的参数,使用提供的执行器执行。<U> CompletableFuture
<U> 返回一个新的CompletionStage,当此阶段正常完成时,使用此阶段的结果作为提供的函数的参数执行。<U> CompletableFuture
<U> thenApplyAsync
(Function<? super T, ? extends U> fn) 返回一个新的CompletionStage,当此阶段正常完成时,使用此阶段的结果作为提供的函数的参数,使用此阶段的默认异步执行设施执行。<U> CompletableFuture
<U> thenApplyAsync
(Function<? super T, ? extends U> fn, Executor executor) 返回一个新的CompletionStage,当此阶段正常完成时,使用此阶段的结果作为提供的函数的参数,使用提供的执行器执行。<U,
V> CompletableFuture <V> thenCombine
(CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn) 返回一个新的CompletionStage,当此和另一个给定阶段都正常完成时,使用两个结果作为提供的函数的参数执行。<U,
V> CompletableFuture <V> thenCombineAsync
(CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn) 返回一个新的CompletionStage,当此和另一个给定阶段都正常完成时,使用两个结果作为提供的函数的参数,使用此阶段的默认异步执行设施执行。<U,
V> CompletableFuture <V> thenCombineAsync
(CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn, Executor executor) 返回一个新的CompletionStage,当此和另一个给定阶段都正常完成时,使用两个结果作为提供的函数的参数,使用提供的执行器执行。<U> CompletableFuture
<U> thenCompose
(Function<? super T, ? extends CompletionStage<U>> fn) 返回一个新的CompletionStage,由给定函数返回的CompletionStage的值相同。<U> CompletableFuture
<U> thenComposeAsync
(Function<? super T, ? extends CompletionStage<U>> fn) 返回一个新的CompletionStage,由给定函数返回的CompletionStage的值相同,使用此阶段的默认异步执行设施执行。<U> CompletableFuture
<U> thenComposeAsync
(Function<? super T, ? extends CompletionStage<U>> fn, Executor executor) 返回一个新的CompletionStage,由给定函数返回的CompletionStage的值相同,使用提供的执行器执行。返回此CompletableFuture。thenRunAsync
(Runnable action) 返回一个标识此CompletableFuture及其完成状态的字符串。thenRunAsync
(Runnable action, Executor executor) 返回一个具有与此阶段相同结果或异常的新CompletionStage,当此阶段完成时执行给定操作。返回一个具有与此阶段相同结果或异常的新CompletionStage,当此阶段完成时使用此阶段的默认异步执行设施执行给定操作。toString()
返回一个具有与此阶段相同结果或异常的新CompletionStage,当此阶段完成时使用提供的执行器执行给定操作。whenComplete
(BiConsumer<? super T, ? super Throwable> action) 创建一个新的未完成的CompletableFuture。whenCompleteAsync
(BiConsumer<? super T, ? super Throwable> action) 返回一个新的CompletableFuture,由在ForkJoinPool.commonPool()
中运行的任务异步完成,之后运行给定操作。whenCompleteAsync
(BiConsumer<? super T, ? super Throwable> action, Executor executor) Returns a new CompletionStage with the same result or exception as this stage, that executes the given action using the supplied Executor when this stage completes.Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods declared in interface java.util.concurrent.CompletionStage
exceptionallyAsync, exceptionallyAsync, exceptionallyCompose, exceptionallyComposeAsync, exceptionallyComposeAsync
Methods declared in interface java.util.concurrent.Future
exceptionNow, resultNow, state
-
Constructor Details
-
CompletableFuture
public CompletableFuture()Creates a new incomplete CompletableFuture.
-
-
Method Details
-
supplyAsync
Returns a new CompletableFuture that is asynchronously completed by a task running in theForkJoinPool.commonPool()
with the value obtained by calling the given Supplier.- 类型参数:
-
U
- 函数的返回类型 - 参数:
-
supplier
- 返回值以完成返回的CompletableFuture的函数 - 返回:
- 新的CompletableFuture
-
supplyAsync
返回一个新的CompletableFuture,由在给定执行器中运行的任务异步完成,之后运行给定操作。- 类型参数:
-
U
- 函数的返回类型 - 参数:
-
supplier
- 返回值以完成返回的CompletableFuture的函数 -
executor
- 用于异步执行的执行器 - 返回:
- 新的CompletableFuture
-
runAsync
返回一个新的CompletableFuture,由在ForkJoinPool.commonPool()
中运行的任务异步完成,之后运行给定操作。- 参数:
-
runnable
- 在完成返回的CompletableFuture之前运行的操作 - 返回:
- 新的CompletableFuture
-
runAsync
返回一个新的CompletableFuture,由在给定执行器中运行的任务异步完成,之后运行给定操作。- 参数:
-
runnable
- 在完成返回的CompletableFuture之前运行的操作 -
executor
- 用于异步执行的执行器 - 返回:
- 新的CompletableFuture
-
completedFuture
返回一个已使用给定值完成的新CompletableFuture。- 类型参数:
-
U
- 值的类型 - 参数:
-
value
- 值 - 返回:
- 已完成的CompletableFuture
-
isDone
public boolean isDone()返回true
,如果以任何方式完成:正常完成、异常完成或通过取消完成。 -
get
如果需要,等待此future完成,然后返回其结果。- 指定者:
-
get
在接口Future<T>
- 返回:
- 结果值
- 抛出:
-
CancellationException
- 如果此future被取消 -
ExecutionException
- 如果此future异常完成 -
InterruptedException
- 如果当前线程在等待时被中断
-
get
public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException 在必要时等待最多给定时间,以使此future完成,然后返回其结果(如果可用)。- 指定者:
-
get
在接口Future<T>
中 - 参数:
-
timeout
- 最长等待时间 -
unit
- 超时参数的时间单位 - 返回:
- 结果值
- 抛出:
-
CancellationException
- 如果此future被取消 -
ExecutionException
- 如果此future异常完成 -
InterruptedException
- 如果当前线程在等待时被中断 -
TimeoutException
- 如果等待超时
-
join
当完成时返回结果值,或者如果异常完成则抛出(未经检查的)异常。为了更好地符合常见函数形式的使用,如果在完成此CompletableFuture的过程中涉及的计算引发异常,则此方法将抛出(未经检查的)CompletionException
,其根本异常作为其原因。- 返回:
- 结果值
- 抛出:
-
CancellationException
- 如果计算被取消 -
CompletionException
- 如果此future异常完成或完成计算引发异常
-
getNow
如果已完成,则返回结果值(或抛出任何遇到的异常),否则返回给定的valueIfAbsent。- 参数:
-
valueIfAbsent
- 如果未完成,则返回的值 - 返回:
- 结果值,如果已完成,则为给定的valueIfAbsent
- 抛出:
-
CancellationException
- 如果计算被取消 -
CompletionException
- 如果此future异常完成或完成计算引发异常
-
complete
如果尚未完成,则将由get()
和相关方法返回的值设置为给定值。- 参数:
-
value
- 结果值 - 返回:
-
如果此调用导致此CompletableFuture过渡到已完成状态,则为
true
,否则为false
-
completeExceptionally
如果尚未完成,则导致get()
和相关方法的调用抛出给定的异常。- 参数:
-
ex
- 异常 - 返回:
-
如果此调用导致此CompletableFuture过渡到已完成状态,则为
true
,否则为false
-
thenApply
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段正常完成时,将使用此阶段的结果作为提供的函数的参数执行。此方法类似于
Optional.map
和Stream.map
。请参阅
CompletionStage
文档,了解异常完成的规则。- 指定者:
-
thenApply
在接口CompletionStage<T>
中 - 类型参数:
-
U
- 函数的返回类型 - 参数:
-
fn
- 用于计算返回的CompletionStage值的函数 - 返回:
- 新的CompletionStage
-
thenApplyAsync
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段正常完成时,将使用此阶段的默认异步执行设施执行,将此阶段的结果作为提供的函数的参数。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
thenApplyAsync
在接口CompletionStage<T>
中 - 类型参数:
-
U
- 函数的返回类型 - 参数:
-
fn
- 用于计算返回的CompletionStage值的函数 - 返回:
- 新的CompletionStage
-
thenApplyAsync
public <U> CompletableFuture<U> thenApplyAsync(Function<? super T, ? extends U> fn, Executor executor) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段正常完成时,将使用提供的Executor执行,将此阶段的结果作为提供的函数的参数。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
thenApplyAsync
在接口CompletionStage<T>
中 - 类型参数:
-
U
- 函数的返回类型 - 参数:
-
fn
- 用于计算返回的CompletionStage值的函数 -
executor
- 用于异步执行的执行程序 - 返回:
- 新的CompletionStage
-
thenAccept
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段正常完成时,将使用此阶段的结果作为提供的操作的参数执行。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
thenAccept
在接口CompletionStage<T>
中 - 参数:
-
action
- 在完成返回的CompletionStage之前执行的操作 - 返回:
- 新的CompletionStage
-
thenAcceptAsync
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段正常完成时,将使用此阶段的默认异步执行设施执行,将此阶段的结果作为提供的操作的参数。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
thenAcceptAsync
在接口CompletionStage<T>
中 - 参数:
-
action
- 在完成返回的CompletionStage之前执行的操作 - 返回:
- 新的CompletionStage
-
thenAcceptAsync
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段正常完成时,将使用提供的Executor执行,将此阶段的结果作为提供的操作的参数。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
thenAcceptAsync
在接口CompletionStage<T>
中 - 参数:
-
action
- 在完成返回的CompletionStage之前执行的操作 -
executor
- 用于异步执行的执行程序 - 返回:
- 新的CompletionStage
-
thenRun
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段正常完成时,执行给定的操作。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
thenRun
在接口CompletionStage<T>
- 参数:
-
action
- 在完成返回的CompletionStage之前执行的操作 - 返回:
- 新的CompletionStage
-
thenRunAsync
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段正常完成时,使用此阶段的默认异步执行设施执行给定的操作。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
thenRunAsync
在接口CompletionStage<T>
- 参数:
-
action
- 在完成返回的CompletionStage之前执行的操作 - 返回:
- 新的CompletionStage
-
thenRunAsync
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段正常完成时,使用提供的Executor执行给定的操作。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
thenRunAsync
在接口CompletionStage<T>
- 参数:
-
action
- 在完成返回的CompletionStage之前执行的操作 -
executor
- 用于异步执行的执行器 - 返回:
- 新的CompletionStage
-
thenCombine
public <U,V> CompletableFuture<V> thenCombine(CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段和另一个给定阶段都正常完成时,使用两个结果作为提供的函数的参数执行。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
thenCombine
在接口CompletionStage<T>
- 类型参数:
-
U
- 另一个CompletionStage结果的类型 -
V
- 函数的返回类型 - 参数:
-
other
- 另一个CompletionStage -
fn
- 用于计算返回的CompletionStage值的函数 - 返回:
- 新的CompletionStage
-
thenCombineAsync
public <U,V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段和另一个给定阶段都正常完成时,使用此阶段的默认异步执行设施,将两个结果作为提供的函数的参数执行。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
thenCombineAsync
在接口CompletionStage<T>
- 类型参数:
-
U
- 另一个CompletionStage结果的类型 -
V
- 函数的返回类型 - 参数:
-
other
- 另一个CompletionStage -
fn
- 用于计算返回的CompletionStage值的函数 - 返回:
- 新的CompletionStage
-
thenCombineAsync
public <U,V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn, Executor executor) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段和另一个给定阶段都正常完成时,使用提供的执行器执行,将两个结果作为提供的函数的参数执行。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
thenCombineAsync
在接口CompletionStage<T>
- 类型参数:
-
U
- 另一个CompletionStage结果的类型 -
V
- 函数的返回类型 - 参数:
-
other
- 另一个CompletionStage -
fn
- 用于计算返回的CompletionStage值的函数 -
executor
- 用于异步执行的执行器 - 返回:
- 新的CompletionStage
-
thenAcceptBoth
public <U> CompletableFuture<Void> thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段和另一个给定阶段都正常完成时,使用两个结果作为提供的操作的参数执行。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
thenAcceptBoth
在接口CompletionStage<T>
- 类型参数:
-
U
- 另一个CompletionStage结果的类型 - 参数:
-
other
- 另一个CompletionStage -
action
- 在完成返回的CompletionStage之前执行的操作 - 返回:
- 新的CompletionStage
-
thenAcceptBothAsync
public <U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段和另一个给定阶段都正常完成时,使用此阶段的默认异步执行设施,将两个结果作为提供的操作的参数执行。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
thenAcceptBothAsync
在接口CompletionStage<T>
- 类型参数:
-
U
- 另一个CompletionStage结果的类型 - 参数:
-
other
- 另一个CompletionStage -
action
- 在完成返回的CompletionStage之前执行的操作 - 返回:
- 新的CompletionStage
-
thenAcceptBothAsync
public <U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action, Executor executor) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段和另一个给定阶段都正常完成时,使用提供的执行器执行,将两个结果作为提供的操作的参数执行。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
thenAcceptBothAsync
在接口CompletionStage<T>
中 - 类型参数:
-
U
- 另一个CompletionStage的结果类型 - 参数:
-
other
- 另一个CompletionStage -
action
- 在完成返回的CompletionStage之前执行的操作 -
executor
- 用于异步执行的执行器 - 返回:
- 新的CompletionStage
-
runAfterBoth
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此CompletionStage和另一个给定的阶段都正常完成时,执行给定的操作。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
runAfterBoth
在接口CompletionStage<T>
中 - 参数:
-
other
- 另一个CompletionStage -
action
- 在完成返回的CompletionStage之前执行的操作 - 返回:
- 新的CompletionStage
-
runAfterBothAsync
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此CompletionStage和另一个给定的阶段都正常完成时,使用此阶段的默认异步执行设施执行给定的操作。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
runAfterBothAsync
在接口CompletionStage<T>
中 - 参数:
-
other
- 另一个CompletionStage -
action
- 在完成返回的CompletionStage之前执行的操作 - 返回:
- 新的CompletionStage
-
runAfterBothAsync
public CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此CompletionStage和另一个给定的阶段都正常完成时,使用提供的执行器执行给定的操作。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
runAfterBothAsync
在接口CompletionStage<T>
中 - 参数:
-
other
- 另一个CompletionStage -
action
- 在完成返回的CompletionStage之前执行的操作 -
executor
- 用于异步执行的执行器 - 返回:
- 新的CompletionStage
-
applyToEither
public <U> CompletableFuture<U> applyToEither(CompletionStage<? extends T> other, Function<? super T, U> fn) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此CompletionStage或另一个给定的阶段正常完成时,使用相应的结果作为参数执行提供的函数。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
applyToEither
在接口CompletionStage<T>
中 - 类型参数:
-
U
- 函数的返回类型 - 参数:
-
other
- 另一个CompletionStage -
fn
- 用于计算返回的CompletionStage值的函数 - 返回:
- 新的CompletionStage
-
applyToEitherAsync
public <U> CompletableFuture<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T, U> fn) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此CompletionStage或另一个给定的阶段正常完成时,使用此阶段的默认异步执行设施执行提供的函数,将相应的结果作为参数。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
applyToEitherAsync
在接口CompletionStage<T>
中 - 类型参数:
-
U
- 函数的返回类型 - 参数:
-
other
- 另一个CompletionStage -
fn
- 用于计算返回的CompletionStage值的函数 - 返回:
- 新的CompletionStage
-
applyToEitherAsync
public <U> CompletableFuture<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T, U> fn, Executor executor) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此CompletionStage或另一个给定的阶段正常完成时,使用提供的执行器执行提供的函数,将相应的结果作为参数。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
applyToEitherAsync
在接口CompletionStage<T>
中 - 类型参数:
-
U
- 函数的返回类型 - 参数:
-
other
- 另一个CompletionStage -
fn
- 用于计算返回的CompletionStage值的函数 -
executor
- 用于异步执行的执行器 - 返回:
- 新的CompletionStage
-
acceptEither
public CompletableFuture<Void> acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此CompletionStage或另一个给定的阶段正常完成时,使用相应的结果作为参数执行提供的操作。请参阅CompletionStage
文档,了解异常完成的规则。- 指定者:
-
acceptEither
在接口CompletionStage<T>
中 - 参数:
-
other
- 另一个CompletionStage -
action
- 在完成返回的CompletionStage之前执行的操作 - 返回:
- 新的CompletionStage
-
acceptEitherAsync
public CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此CompletionStage或另一个给定的阶段正常完成时,使用此阶段的默认异步执行设施执行提供的操作,将相应的结果作为参数。请参阅CompletionStage
文档,了解异常完成的规则。- 指定由:
-
acceptEitherAsync
在接口CompletionStage<T>
- 参数:
-
other
- 另一个CompletionStage -
action
- 在完成返回的CompletionStage之前执行的操作 - 返回:
- 新的CompletionStage
-
acceptEitherAsync
public CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,将使用提供的执行程序执行,将相应的结果作为参数传递给提供的操作。请参阅CompletionStage
文档,了解异常完成的规则。- 指定由:
-
acceptEitherAsync
在接口CompletionStage<T>
- 参数:
-
other
- 另一个CompletionStage -
action
- 在完成返回的CompletionStage之前执行的操作 -
executor
- 用于异步执行的执行程序 - 返回:
- 新的CompletionStage
-
runAfterEither
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,执行给定的操作。请参阅CompletionStage
文档,了解异常完成的规则。- 指定由:
-
runAfterEither
在接口CompletionStage<T>
- 参数:
-
other
- 另一个CompletionStage -
action
- 在完成返回的CompletionStage之前执行的操作 - 返回:
- 新的CompletionStage
-
runAfterEitherAsync
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用此阶段的默认异步执行设施执行给定的操作。请参阅CompletionStage
文档,了解异常完成的规则。- 指定由:
-
runAfterEitherAsync
在接口CompletionStage<T>
- 参数:
-
other
- 另一个CompletionStage -
action
- 在完成返回的CompletionStage之前执行的操作 - 返回:
- 新的CompletionStage
-
runAfterEitherAsync
public CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用提供的执行程序执行给定的操作。请参阅CompletionStage
文档,了解异常完成的规则。- 指定由:
-
runAfterEitherAsync
在接口CompletionStage<T>
- 参数:
-
other
- 另一个CompletionStage -
action
- 在完成返回的CompletionStage之前执行的操作 -
executor
- 用于异步执行的执行程序 - 返回:
- 新的CompletionStage
-
thenCompose
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,其完成值与给定函数返回的CompletionStage的值相同。当此阶段正常完成时,使用此阶段的结果作为参数调用给定函数,返回另一个CompletionStage。当该阶段正常完成时,通过此方法返回的CompletionStage将以相同的值完成。
为了确保进展,提供的函数必须安排其结果的最终完成。
此方法类似于
Optional.flatMap
和Stream.flatMap
。请参阅
CompletionStage
文档,了解异常完成的规则。- 指定由:
-
thenCompose
在接口CompletionStage<T>
- 类型参数:
-
U
- 返回的CompletionStage结果的类型 - 参数:
-
fn
- 用于计算另一个CompletionStage的函数 - 返回:
- 新的CompletionStage
-
thenComposeAsync
public <U> CompletableFuture<U> thenComposeAsync(Function<? super T, ? extends CompletionStage<U>> fn) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,其完成值与使用此阶段的默认异步执行设施执行的给定函数返回的CompletionStage的值相同。当此阶段正常完成时,使用此阶段的结果作为参数调用给定函数,返回另一个CompletionStage。当该阶段正常完成时,通过此方法返回的CompletionStage将以相同的值完成。
为了确保进展,提供的函数必须安排其结果的最终完成。
请参阅
CompletionStage
文档,了解异常完成的规则。- 指定由:
-
thenComposeAsync
在接口CompletionStage<T>
- 类型参数:
-
U
- 返回的CompletionStage结果的类型 - 参数:
-
fn
- 用于计算另一个CompletionStage的函数 - 返回:
- 新的CompletionStage
-
thenComposeAsync
public <U> CompletableFuture<U> thenComposeAsync(Function<? super T, ? extends CompletionStage<U>> fn, Executor executor) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,其完成值与使用提供的执行程序执行的给定函数返回的CompletionStage的值相同。当此阶段正常完成时,使用此阶段的结果作为参数调用给定函数,返回另一个CompletionStage。当该阶段正常完成时,通过此方法返回的CompletionStage将以相同的值完成。
为了确保进展,提供的函数必须安排其结果的最终完成。
请参阅
CompletionStage
文档,了解异常完成的规则。- 指定由:
-
thenComposeAsync
在接口CompletionStage<T>
- 类型参数:
-
U
- 返回的CompletionStage结果的类型 - 参数:
-
fn
- 用于计算另一个CompletionStage的函数 -
executor
- 用于异步执行的执行程序 - 返回:
- 新的CompletionStage
-
whenComplete
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,其结果或异常与此阶段相同,在此阶段完成时执行给定操作。当此阶段完成时,将使用此阶段的结果(如果没有则为
null
)和异常(如果没有则为null
)作为参数调用给定操作。当操作返回时,返回的阶段完成。与方法
handle
不同,此方法不设计用于转换完成结果,因此提供的操作不应抛出异常。但是,如果抛出异常,则适用以下规则:如果此阶段正常完成但提供的操作抛出异常,则返回的阶段将异常完成,并带有提供的操作的异常。或者,如果此阶段异常完成且提供的操作抛出异常,则返回的阶段将异常完成,并带有此阶段的异常。- 指定者:
-
whenComplete
在接口CompletionStage<T>
中 - 参数:
-
action
- 要执行的操作 - 返回:
- 新的CompletionStage
-
whenCompleteAsync
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,其结果或异常与此阶段相同,在此阶段完成时使用此阶段的默认异步执行设施执行给定操作。当此阶段完成时,将使用此阶段的结果(如果没有则为
null
)和异常(如果没有则为null
)作为参数调用给定操作。当操作返回时,返回的阶段完成。与方法
handleAsync
不同,此方法不设计用于转换完成结果,因此提供的操作不应抛出异常。但是,如果抛出异常,则适用以下规则:如果此阶段正常完成但提供的操作抛出异常,则返回的阶段将异常完成,并带有提供的操作的异常。或者,如果此阶段异常完成且提供的操作抛出异常,则返回的阶段将异常完成,并带有此阶段的异常。- 指定者:
-
whenCompleteAsync
在接口CompletionStage<T>
中 - 参数:
-
action
- 要执行的操作 - 返回:
- 新的CompletionStage
-
whenCompleteAsync
public CompletableFuture<T> whenCompleteAsync(BiConsumer<? super T, ? super Throwable> action, Executor executor) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,其结果或异常与此阶段相同,在此阶段完成时使用提供的Executor执行给定操作。当此阶段完成时,将使用此阶段的结果(如果没有则为
null
)和异常(如果没有则为null
)作为参数调用给定操作。当操作返回时,返回的阶段完成。与方法
handleAsync
不同,此方法不设计用于转换完成结果,因此提供的操作不应抛出异常。但是,如果抛出异常,则适用以下规则:如果此阶段正常完成但提供的操作抛出异常,则返回的阶段将异常完成,并带有提供的操作的异常。或者,如果此阶段异常完成且提供的操作抛出异常,则返回的阶段将异常完成,并带有此阶段的异常。- 指定者:
-
whenCompleteAsync
在接口CompletionStage<T>
中 - 参数:
-
action
- 要执行的操作 -
executor
- 用于异步执行的执行器 - 返回:
- 新的CompletionStage
-
handle
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段正常或异常完成时,将使用此阶段的结果和异常作为提供的函数的参数执行。当此阶段完成时,将使用此阶段的结果(如果没有则为
null
)和异常(如果没有则为null
)作为参数调用给定函数,并使用函数的结果来完成返回的阶段。- 指定者:
-
handle
在接口CompletionStage<T>
中 - 类型参数:
-
U
- 函数的返回类型 - 参数:
-
fn
- 用于计算返回的CompletionStage值的函数 - 返回:
- 新的CompletionStage
-
handleAsync
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段正常或异常完成时,将使用此阶段的结果和异常作为提供的函数的参数使用此阶段的默认异步执行设施执行。当此阶段完成时,将使用此阶段的结果(如果没有则为
null
)和异常(如果没有则为null
)作为参数调用给定函数,并使用函数的结果来完成返回的阶段。- 指定者:
-
handleAsync
在接口CompletionStage<T>
中 - 类型参数:
-
U
- 函数的返回类型 - 参数:
-
fn
- 用于计算返回的CompletionStage值的函数 - 返回:
- 新的CompletionStage
-
handleAsync
public <U> CompletableFuture<U> handleAsync(BiFunction<? super T, Throwable, ? extends U> fn, Executor executor) 从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段正常或异常完成时,将使用提供的执行器,将此阶段的结果和异常作为提供的函数的参数执行。当此阶段完成时,将使用此阶段的结果(如果没有则为
null
)和异常(如果没有则为null
)作为参数调用给定函数,并使用函数的结果来完成返回的阶段。- 指定者:
-
handleAsync
在接口CompletionStage<T>
中 - 类型参数:
-
U
- 函数的返回类型 - 参数:
-
fn
- 用于计算返回的CompletionStage值的函数 -
executor
- 用于异步执行的执行器 - 返回:
- 新的CompletionStage
-
toCompletableFuture
返回此CompletableFuture。- 指定者:
-
toCompletableFuture
在接口CompletionStage<T>
中 - 返回:
- 此CompletableFuture
-
exceptionally
从接口复制的描述:CompletionStage
返回一个新的CompletionStage,当此阶段异常完成时,将使用此阶段的异常作为提供的函数的参数执行。否则,如果此阶段正常完成,则返回的阶段也将以相同的值正常完成。- 指定者:
-
exceptionally
在接口CompletionStage<T>
中 - 参数:
-
fn
- 如果此CompletionStage异常完成,则用于计算返回的CompletionStage值的函数 - 返回:
- 新的CompletionStage
-
allOf
返回一个新的CompletableFuture,当所有给定的CompletableFutures完成时,它也完成。如果任何给定的CompletableFutures异常完成,则返回的CompletableFuture也会异常完成,其中包含此异常作为其原因的CompletionException。否则,给定的CompletableFutures的结果(如果有)不会反映在返回的CompletableFuture中,但可以通过单独检查它们来获取。如果没有提供CompletableFutures,则返回一个完成值为null
的CompletableFuture。此方法的应用之一是在继续程序之前等待一组独立CompletableFutures完成,如:
CompletableFuture.allOf(c1, c2, c3).join();
。- 参数:
-
cfs
- CompletableFutures - 返回:
- 一个新的CompletableFuture,当所有给定的CompletableFutures完成时完成
- 抛出:
-
NullPointerException
- 如果数组或其任何元素为null
-
anyOf
返回一个新的CompletableFuture,当给定的任何CompletableFutures完成时,它也完成,并具有相同的结果。否则,如果它异常完成,返回的CompletableFuture也会异常完成,其中包含此异常作为原因的CompletionException。如果没有提供CompletableFutures,则返回一个不完整的CompletableFuture。- 参数:
-
cfs
- CompletableFutures - 返回:
- 一个新的CompletableFuture,当给定的任何CompletableFutures完成时,使用其结果或异常完成
- 抛出:
-
NullPointerException
- 如果数组或其任何元素为null
-
cancel
public boolean cancel(boolean mayInterruptIfRunning) 如果尚未完成,则使用CancellationException
完成此CompletableFuture。尚未完成的依赖CompletableFutures也将异常完成,其中包含由此引起的 CompletionException
。 -
isCancelled
public boolean isCancelled()如果此CompletableFuture在正常完成之前被取消,则返回true
。- 指定者:
-
isCancelled
在接口Future<T>
- 返回:
-
如果此CompletableFuture在正常完成之前被取消,则为
true
-
isCompletedExceptionally
public boolean isCompletedExceptionally()如果此CompletableFuture以任何方式异常完成,则返回true
。可能的原因包括取消、显式调用completeExceptionally
以及CompletionStage操作的突然终止。- 返回:
-
如果此CompletableFuture以任何方式异常完成,则为
true
-
obtrudeValue
强制设置或重置随后由方法get()
及相关方法返回的值,无论是否已经完成。此方法仅设计用于错误恢复操作,即使在这种情况下,也可能导致使用已建立的结果与被覆盖结果进行持续依赖完成。- 参数:
-
value
- 完成值
-
obtrudeException
强制导致随后对方法get()
及相关方法的调用抛出给定异常,无论是否已经完成。此方法仅设计用于错误恢复操作,即使在这种情况下,也可能导致使用已建立的结果与被覆盖结果进行持续依赖完成。- 参数:
-
ex
- 异常 - 抛出:
-
NullPointerException
- 如果异常为null
-
getNumberOfDependents
public int getNumberOfDependents()返回等待此CompletableFuture完成的CompletableFutures估计数量。此方法设计用于监视系统状态,而不是用于同步控制。- 返回:
- 依赖CompletableFutures的数量
-
toString
返回一个标识此CompletableFuture及其完成状态的字符串。状态在括号中包含字符串"Completed Normally"
或字符串"Completed Exceptionally"
,或字符串"Not completed"
,后跟依赖于其完成的CompletableFutures数量(如果有)。 -
newIncompleteFuture
返回一个新的未完成的CompletableFuture,其类型与CompletionStage方法返回的类型相同。子类通常应覆盖此方法,以返回与此CompletableFuture相同类的实例。默认实现返回CompletableFuture类的实例。- 类型参数:
-
U
- 值的类型 - 返回:
- 一个新的CompletableFuture
- 自:
- 9
-
defaultExecutor
返回用于未指定Executor的异步方法的默认Executor。如果支持多个并行线程,则此类使用ForkJoinPool.commonPool()
,否则使用每个异步任务一个线程的Executor。子类可以重写此方法,以返回提供至少一个独立线程的Executor。- 返回:
- Executor
- 自:
- 9
-
copy
返回一个新的CompletableFuture,当此CompletableFuture正常完成时,它也正常完成并具有相同的值。如果此CompletableFuture异常完成,则返回的CompletableFuture将以此异常作为原因异常完成。行为等效于thenApply(x -> x)
。此方法可能作为一种“防御性复制”形式有用,以防止客户端完成,同时仍能安排依赖操作。- 返回:
- 新的CompletableFuture
- 自:
- 9
-
minimalCompletionStage
返回一个新的CompletionStage,当此CompletableFuture正常完成时,它也正常完成,并且不能独立完成或以接口CompletionStage
方法未定义的方式使用。如果此CompletableFuture异常完成,则返回的CompletionStage将以此异常作为原因异常完成。除非子类覆盖,否则可以通过
toCompletableFuture()
从最小CompletionStage获得具有所有可用方法的新的非最小CompletableFuture。例如,可以通过minimalStage.toCompletableFuture().join();
- 返回:
- 新的CompletionStage
- 自:
- 9
-
completeAsync
使用给定的执行器从异步任务中调用的Supplier函数的结果完成此CompletableFuture。- 参数:
-
supplier
- 返回用于完成此CompletableFuture的值的函数 -
executor
- 用于异步执行的执行器 - 返回:
- 此CompletableFuture
- 自:
- 9
-
completeAsync
使用默认执行器从异步任务中调用的Supplier函数的结果完成此CompletableFuture。- 参数:
-
supplier
- 返回用于完成此CompletableFuture的值的函数 - 返回:
- 此CompletableFuture
- 自:
- 9
-
orTimeout
如果在给定超时之前未完成,则异常完成此CompletableFuture,使用TimeoutException
。- 参数:
-
timeout
- 在单位unit
的时间内等待多久后使用TimeoutException异常完成 -
unit
- 确定如何解释timeout
参数的TimeUnit
- 返回:
- 此CompletableFuture
- 自:
- 9
-
completeOnTimeout
如果在给定超时之前未完成,则使用给定值完成此CompletableFuture。- 参数:
-
value
- 超时后使用的值 -
timeout
- 在单位unit
的时间内等待多久后使用给定值正常完成 -
unit
- 确定如何解释timeout
参数的TimeUnit
- 返回:
- 此CompletableFuture
- 自:
- 9
-
delayedExecutor
返回一个新的Executor,在给定延迟(如果非正数则没有延迟)后将任务提交给给定的基本执行器。每个延迟都从返回的执行器的execute
方法的调用开始。- 参数:
-
delay
- 延迟时间,以unit
为单位 -
unit
- 一个TimeUnit
,确定如何解释delay
参数 -
executor
- 基础执行器 - 返回:
- 新的延迟执行器
- 自版本:
- 9
-
delayedExecutor
返回一个新的执行器,它在给定延迟后(如果非正数则没有延迟)将任务提交给默认执行器。每个延迟都从返回执行器的execute
方法的调用开始。- 参数:
-
delay
- 延迟时间,以unit
为单位 -
unit
- 一个TimeUnit
,确定如何解释delay
参数 - 返回:
- 新的延迟执行器
- 自版本:
- 9
-
completedStage
返回一个已经使用给定值完成的新的CompletionStage,并且仅支持接口CompletionStage
中的方法。- 类型参数:
-
U
- 值的类型 - 参数:
-
value
- 值 - 返回:
- 已完成的CompletionStage
- 自版本:
- 9
-
failedFuture
返回一个已经使用给定异常异常完成的新的CompletableFuture。- 类型参数:
-
U
- 值的类型 - 参数:
-
ex
- 异常 - 返回:
- 异常完成的CompletableFuture
- 自版本:
- 9
-
failedStage
返回一个已经使用给定异常异常完成的新的CompletionStage,并且仅支持接口CompletionStage
中的方法。- 类型参数:
-
U
- 值的类型 - 参数:
-
ex
- 异常 - 返回:
- 异常完成的CompletionStage
- 自版本:
- 9
-