语言

CompletableFuture 类

定义

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

[Android.Runtime.Register("java/util/concurrent/CompletableFuture", ApiSince=24, DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public class CompletableFuture : Java.Lang.Object, IDisposable, Java.Util.Concurrent.ICompletionStage, Java.Util.Concurrent.IFuture
[<Android.Runtime.Register("java/util/concurrent/CompletableFuture", ApiSince=24, DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
type CompletableFuture = class
    inherit Object
    interface ICompletionStage
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IFuture
继承
CompletableFuture
属性
实现

注解

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

当两个或多个线程尝试#complete complete或#completeExceptionally completeExceptionally#cancel cancel一个 CompletableFuture 时,其中只有一个成功。

除了用于直接操作状态和结果的这些和相关方法外,CompletableFuture 还使用以下策略实现接口CompletionStage: <>

<为 em 非异步/em> 方法的<>依赖完成提供的 li<Actions 可由完成当前 CompletedableFuture 的线程或完成方法的任何其他调用方>执行。

< >li all <em>async</em> methods without an explicit Executor argument is using the ForkJoinPool#commonPool() (除非它不支持至少两个并行度级别,在这种情况下,将创建一个新的 Thread 来运行每个任务)。 为了简化监视、调试和跟踪,所有生成的异步任务都是标记接口 AsynchronousCompletionTask的实例。 具有时间延迟的操作可以使用此类中定义的适配器方法,例如: supplyAsync(supplier, delayedExecutor(timeout, timeUnit)) 为了支持延迟和超时的方法,此类最多维护一个守护程序线程来触发和取消操作,而不是运行它们。

<li>All CompletionStage 方法独立于其他公共方法实现,因此一种方法的行为不受子类中其他方法的重写的影响。

</ul>

CompletableFuture 还使用以下策略实现 Future : <ul>

<li>由于(不像 FutureTask)此类无法直接控制导致计算完成的计算,因此取消被视为另一种异常完成形式。 方法 #cancel cancel 的效果与 completeExceptionally(new CancellationException()). 方法 #isCompletedExceptionally 可用于确定 CompletedableFuture 是否以任何异常方式完成。

<li>如果使用 CompletionException 异常完成,方法和#get()#get(long, TimeUnit)引发ExecutionException与相应 CompletionException 中保留的相同原因。 为了简化大多数上下文中的用法,此类还定义了方法 #join() ,并 #getNow 直接在这些情况下引发 CompletionException。 </ul>

用于传递完成结果(即类型 T参数)的方法的参数可能为 null,但为任何其他参数传递 null 值将导致 NullPointerException 引发。

已在 1.8 中添加。

适用于 . 的 java.util.concurrent.CompletableFutureJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

名称 说明
CompletableFuture()

创建新的不完整的 CompletableFuture。

CompletableFuture(IntPtr, JniHandleOwnership)

创建表示现有Java对象的托管实例。

属性

名称 说明
Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
IsCancelled

返回 true 此 CompletedableFuture 是否已在正常完成之前取消。

IsCompletedExceptionally

true返回此 CompletedableFuture 是否以任何方式异常完成。

IsDone

如果以任何方式完成,则返回 true :通常、异常或通过取消。

JniIdentityHashCode

获取互操作运行时分配给此Java对等的标识哈希代码。

(继承自 Object)
JniManagedPeerState

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

(继承自 JavaObject)
JniPeerMembers

获取用于访问此Java绑定成员的 JNI 元数据。

NumberOfDependents

返回正在等待此 CompletableFuture 完成的 CompletableFuture 的估计数量。

PeerReference

获取此Java对等方的 JNI 对象引用。

(继承自 Object)
ThresholdClass

获取用于虚拟方法调度的 Java 类。

ThresholdType

获取声明此Java绑定的托管类型。

方法

名称 说明
AcceptEither(ICompletionStage, IConsumer)

返回一个新的 CompletionStage,当此阶段或其他给定阶段正常完成时,将执行相应的结果作为提供操作的参数。

AcceptEitherAsync(ICompletionStage, IConsumer, IExecutor)

返回新的 CompletionStage,当此阶段或其他给定阶段正常完成时,使用提供的执行程序执行,并将相应的结果作为提供操作的参数执行。

AcceptEitherAsync(ICompletionStage, IConsumer)

返回一个新的 CompletionStage,当此阶段或其他给定阶段正常完成时,使用此阶段的默认异步执行工具执行,并将相应的结果作为提供操作的参数。

AllOf(CompletableFuture[])

返回一个新的 CompleteableFuture,当所有给定的 CompleteableFutures 完成时完成。

AnyOf(CompletableFuture[])

返回一个新的 CompleteableFuture,当任何给定的 CompleteableFutures 完成时完成,结果相同。

ApplyToEither(ICompletionStage, IFunction)

返回一个新的 CompletionStage,当此阶段或其他给定阶段正常完成时,使用相应的结果作为提供函数的参数执行。

ApplyToEitherAsync(ICompletionStage, IFunction, IExecutor)

返回一个新的 CompletionStage,当此阶段或其他给定阶段正常完成时,使用提供的执行器执行,并将相应的结果作为提供函数的参数执行。

ApplyToEitherAsync(ICompletionStage, IFunction)

返回一个新的 CompletionStage,当此阶段或其他给定阶段正常完成时,使用此阶段的默认异步执行工具执行,并将相应的结果作为提供函数的参数。

Cancel(Boolean)

如果尚未完成,请使用 a.CancellationException

Clone()

创建并返回此对象的副本。

(继承自 Object)
Complete(Object)

如果尚未完成,将由 #get() 和相关方法返回的值设置为给定值。

CompleteAsync(ISupplier, IExecutor)

使用给定的执行程序从异步任务调用的给定供应商函数的结果完成此 CompleteableFuture。

CompleteAsync(ISupplier)

使用默认执行程序从异步任务调用的给定供应商函数的结果完成此 CompleteableFuture。

CompletedFuture(Object)

返回已使用给定值完成的新 CompletedableFuture。

CompletedStage(Object)

返回已使用给定值完成的新 CompletionStage,并且仅支持接口 CompletionStage中的这些方法。

CompleteExceptionally(Throwable)

如果尚未完成,会导致调用 #get() 和相关方法引发给定的异常。

CompleteOnTimeout(Object, Int64, TimeUnit)

如果给定超时之前未完成,请使用给定值完成此 CompleteableFuture。

Construct(JniObjectReference, JniObjectReferenceOptions)

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

(继承自 JavaObject)
Copy()

返回一个新的 CompleteableFuture,该函数在正常完成时通常使用与此 CompleteableFuture 相同的值完成。

DefaultExecutor()

返回用于未指定执行程序异步方法的默认执行程序。

DelayedExecutor(Int64, TimeUnit, IExecutor)

返回一个新的执行程序,该执行程序在给定延迟后将任务提交到给定的基础执行程序(如果未为正)或无延迟。

DelayedExecutor(Int64, TimeUnit)

返回一个新的执行程序,该执行程序在给定的延迟后将任务提交到默认执行程序(如果非正时不延迟)。

Dispose()

释放此Java对等方持有的资源。

(继承自 Object)
Dispose(Boolean)

释放此Java对等方持有的资源。

(继承自 Object)
DisposeUnlessReferenced()

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

(继承自 JavaObject)
Equals(Object)

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

(继承自 JavaObject)
Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
Exceptionally(IFunction)

返回一个新的 CompleteableFuture,当此 CompleteableFuture 完成时已完成,异常的给定函数的结果在异常完成时触发此 CompleteableFuture 完成;否则,如果此 CompleteableFuture 正常完成,则返回的 CompleteableFuture 也以相同的值正常完成。

ExceptionallyAsync(IFunction, IExecutor)

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

ExceptionallyAsync(IFunction)

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

ExceptionallyCompose(IFunction)

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

ExceptionallyComposeAsync(IFunction, IExecutor)

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

ExceptionallyComposeAsync(IFunction)

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

ExceptionNow()

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

FailedFuture(Throwable)

返回一个新的 CompletedableFuture,该函数已在给定异常的情况下完成。

FailedStage(Throwable)

返回一个新的 CompletionStage,它已以给定的异常异常完成,并且仅支持接口 CompletionStage中的这些方法。

Get()

根据需要等待此未来完成,然后返回其结果。

Get(Int64, TimeUnit)

如有必要,请等待此未来完成的最多给定时间,然后返回其结果(如果可用)。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
GetNow(Object)

如果已完成,则返回结果值(或引发任何遇到的异常),否则返回给定 valueIfAbsent。

Handle(IBiFunction)

返回一个新的 CompletionStage,当此阶段正常或异常完成时,将执行此阶段的结果和异常作为提供的函数的参数。

HandleAsync(IBiFunction, IExecutor)

返回一个新的 CompletionStage,当此阶段正常完成或异常时,使用提供的执行程序执行,此阶段的结果和异常作为提供的函数的参数。

HandleAsync(IBiFunction)

返回一个新的 CompletionStage,当此阶段正常完成或异常时,使用此阶段的默认异步执行工具执行,此阶段的结果和异常作为提供函数的参数。

JavaFinalize()
已过时.

当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Join()

返回完成时的结果值,或者在异常完成时引发(未选中)异常。

MinimalCompletionStage()

返回一个新的 CompletionStage,在正常完成时通常以与此 CompleteableFuture 相同的值完成,并且不能以接口方法 CompletionStage未定义的方式独立完成或以其他方式使用。

NewIncompleteFuture()

返回要由 CompletionStage 方法返回的类型的新不完整的 CompletableFuture。

Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
ObtrudeException(Throwable)

强制导致后续调用方法和 #get() 相关方法引发给定异常,无论是否已完成。

ObtrudeValue(Object)

强制设置或重置方法 #get() 及其相关方法随后返回的值,无论是否已完成。

OrTimeout(Int64, TimeUnit)

异常地完成此 CompleteableFuture( TimeoutException 如果不是在给定超时之前未完成的话)。

ResultNow()

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

RunAfterBoth(ICompletionStage, IRunnable)

返回一个新的 CompletionStage,当此阶段和其他给定阶段都正常完成时,将执行给定的操作。

RunAfterBothAsync(ICompletionStage, IRunnable, IExecutor)

返回一个新的 CompletionStage,当此阶段和其他给定阶段都正常完成时,使用提供的执行程序执行给定的操作。

RunAfterBothAsync(ICompletionStage, IRunnable)

返回一个新的 CompletionStage,当这一阶段和其他给定阶段都正常完成时,使用此阶段的默认异步执行工具执行给定操作。

RunAfterEither(ICompletionStage, IRunnable)

返回一个新的 CompletionStage,当此阶段或其他给定阶段正常完成时,将执行给定的操作。

RunAfterEitherAsync(ICompletionStage, IRunnable, IExecutor)

返回新的 CompletionStage,当此阶段或其他给定阶段正常完成时,使用提供的执行程序执行给定的操作。

RunAfterEitherAsync(ICompletionStage, IRunnable)

返回一个新的 CompletionStage,当此阶段或其他给定阶段正常完成时,使用此阶段的默认异步执行工具执行给定操作。

RunAsync(IRunnable, IExecutor)

返回一个新的 CompletedableFuture,该任务在运行给定操作后由给定执行器中运行的任务异步完成。

RunAsync(IRunnable)

返回由运行给定操作后运行 ForkJoinPool#commonPool() 的任务异步完成的新 CompletedableFuture。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

(继承自 JavaObject)
State()

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

SupplyAsync(ISupplier, IExecutor)

返回一个新的 CompletedableFuture,该函数由在给定执行器中运行的任务异步完成,该任务通过调用给定供应商获取的值。

SupplyAsync(ISupplier)

返回一个新的 CompletedableFuture,该函数由运行的任务异步完成, ForkJoinPool#commonPool() 该任务通过调用给定的供应商获取的值。

ThenAccept(IConsumer)

返回一个新的 CompletionStage,当此阶段正常完成时,将执行此阶段的结果作为提供操作的参数。

ThenAcceptAsync(IConsumer, IExecutor)

返回一个新的 CompletionStage,当此阶段正常完成时,使用提供的执行程序执行,此阶段的结果作为提供的操作的参数。

ThenAcceptAsync(IConsumer)

返回一个新的 CompletionStage,当此阶段正常完成时,使用此阶段的默认异步执行工具执行,此阶段的结果作为提供操作的参数。

ThenAcceptBoth(ICompletionStage, IBiConsumer)

返回一个新的 CompletionStage,当这和另一个给定阶段正常完成时,将执行两个结果作为提供操作的参数。

ThenAcceptBothAsync(ICompletionStage, IBiConsumer, IExecutor)

返回一个新的 CompletionStage,当这一阶段和其他给定阶段都正常完成时,使用提供的执行器执行,并将两个结果作为提供的操作的参数执行。

ThenAcceptBothAsync(ICompletionStage, IBiConsumer)

返回一个新的 CompletionStage,当这一阶段和其他给定阶段都正常完成时,使用此阶段的默认异步执行工具执行,这两个结果作为提供的操作的参数。

ThenApply(IFunction)

返回一个新的 CompletionStage,当此阶段正常完成时,将使用此阶段的结果作为提供的函数的参数来执行。

ThenApplyAsync(IFunction, IExecutor)

返回一个新的 CompletionStage,当此阶段正常完成时,使用提供的执行程序执行,此阶段的结果作为提供的函数的参数。

ThenApplyAsync(IFunction)

返回一个新的 CompletionStage,当此阶段正常完成时,使用此阶段的默认异步执行工具执行,此阶段的结果作为提供函数的参数。

ThenCombine(ICompletionStage, IBiFunction)

返回一个新的 CompletionStage,当这和另一个给定阶段正常完成时,将执行两个结果作为提供的函数的参数。

ThenCombineAsync(ICompletionStage, IBiFunction, IExecutor)

返回一个新的 CompletionStage,当这一阶段和其他给定阶段正常完成时,使用提供的执行器执行,并将两个结果作为提供的函数的参数执行。

ThenCombineAsync(ICompletionStage, IBiFunction)

返回一个新的 CompletionStage,当这一阶段和其他给定阶段都正常完成时,使用此阶段的默认异步执行工具执行,这两个结果作为提供的函数的参数。

ThenCompose(IFunction)

返回与给定函数返回的 CompletionStage 相同的值完成的新 CompletionStage。

ThenComposeAsync(IFunction, IExecutor)

返回与给定函数返回的 CompletedStage 相同的值(使用提供的执行程序执行)完成的新 CompletionStage。

ThenComposeAsync(IFunction)

返回使用此阶段的默认异步执行工具执行的与给定函数返回的 CompletionStage 相同的值完成的新 CompletionStage。

ThenRun(IRunnable)

返回一个新的 CompletionStage,当此阶段正常完成时,将执行给定的操作。

ThenRunAsync(IRunnable, IExecutor)

返回一个新的 CompletionStage,当此阶段正常完成时,使用提供的执行程序执行给定的操作。

ThenRunAsync(IRunnable)

返回一个新的 CompletionStage,当此阶段正常完成时,使用此阶段的默认异步执行工具执行给定操作。

ToArray<T>()

从此Java数组包装器创建托管数组。

(继承自 Object)
ToCompletableFuture()

返回此 CompletableFuture。

ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

从互操作运行时取消注册此Java对等。

(继承自 Object)
Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em< 或 >em<interrupted>/em<。><>

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)
WhenComplete(IBiConsumer)

返回与此阶段相同的结果或异常的新 CompletionStage,该结果或异常在此阶段完成时执行给定操作。

WhenCompleteAsync(IBiConsumer, IExecutor)

返回一个新的 CompletionStage,其结果或异常与此阶段相同,此阶段完成后使用提供的执行程序执行给定操作。

WhenCompleteAsync(IBiConsumer)

返回一个新的 CompletionStage,其结果或异常与此阶段相同,当此阶段完成时,将使用此阶段的默认异步执行工具执行给定操作。

显式接口实现

名称 说明
IJavaPeerable.Disposed()

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

(继承自 JavaObject)
IJavaPeerable.Finalized()

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

(继承自 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

(继承自 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

(继承自 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

(继承自 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

(继承自 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

从运行时的Java对象查找中删除此实例。

扩展方法

名称 说明
GetAsync(IFuture, Int64, TimeUnit)

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

GetAsync(IFuture)

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

GetJniTypeName(IJavaPeerable)

获取实例 self类型的 JNI 名称。

JavaAs<TResult>(IJavaPeerable)

尝试强制self键入TResult,检查强制是否在Java端有效。

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

Future一个可以显式完成(设置其值和状态),并可用作CompletionStage支持在其完成时触发的依赖函数和操作。

TryJavaCast<TResult>(IJavaPeerable, TResult)

尝试强制self键入TResult,检查强制是否在Java端有效。

适用于