Java9 CompletableFuture API

CompletableFuture类是在Java 8中引入的,可以通过设置其值和状态显式来完成。 它可以用作java.util.concurrent.CompletionStage。 它支持未来完成时触发的相关函数和操作。 在Java 9中,CompletableFuture API进一步得到了增强。 以下是对API进行的相关更改。

  • 支持延迟和超时。
  • 改进了对子类的支持。
  • 添加了新的工厂方法。

1. 支持延迟和超时

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

Java

如果在给定超时之前未完成,则此方法使用给定值完成CompletableFuture

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

Java

如果在给定的超时之前没有完成,则此方法异常地完成此CompletableFuture并带有TimeoutException异常。

2. 改进了对子类的支持

public Executor defaultExecutor()

Java

它将返回用于未指定Executor异步方法的默认Executor。 可以在子类中重写此方法以返回Executor以提供一个最小的独立线程。

public <U> CompletableFuture<U> newIncompleteFuture()

Java

返回由CompletionStage方法返回类型的新不完整CompletableFutureCompletableFuture类的子类应该重写此方法以返回与CompletableFuture相同的类的实例。 默认实现返回CompletableFuture类的一个实例。

3. 新工厂方法

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

Java

这个工厂方法返回一个已经用给定值完成的新的CompletableFuture

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

Java

这个工厂方法返回一个新的CompletionStage,它已经用给定的值完成,并且只支持接口CompletionStage中存在的那些方法。

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

Java

该工厂方法返回一个新的CompletionStage,该异常已经异常完成,并且仅支持CompletionStage接口中存在的那些方法。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CompletableFuture是Java 8中引入的一个类,用于支持异步编程和并发操作。它提供了丰富的API来处理异步任务的结果和操作。以下是CompletableFuture的一些常用API: 1. `CompletableFuture.supplyAsync(Supplier<U> supplier)`:创建一个CompletableFuture对象,该对象会在异步执行给定的Supplier任务后返回结果。 2. `CompletableFuture.runAsync(Runnable runnable)`:创建一个CompletableFuture对象,该对象会在异步执行给定的Runnable任务后返回结果。 3. `CompletableFuture.thenApply(Function<? super T,? extends U> fn)`:对CompletableFuture的结果应用给定的函数,并返回一个新的CompletableFuture对象。 4. `CompletableFuture.thenAccept(Consumer<? super T> action)`:对CompletableFuture的结果应用给定的消费者函数,不返回任何结果。 5. `CompletableFuture.thenRun(Runnable action)`:在CompletableFuture完成后执行给定的Runnable任务。 6. `CompletableFuture.thenCombine(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)`:将两个CompletableFuture的结果进行组合,并将结果应用给定的函数。 7. `CompletableFuture.thenCompose(Function<? super T,? extends CompletionStage<U>> fn)`:对CompletableFuture的结果应用给定的函数,并返回一个新的CompletableFuture对象。 8. `CompletableFuture.exceptionally(Function<Throwable,? extends T> fn)`:在CompletableFuture发生异常时,应用给定的函数处理异常,并返回一个新的CompletableFuture对象。 9. `CompletableFuture.whenComplete(BiConsumer<? super T,? super Throwable> action)`:在CompletableFuture完成后,应用给定的函数处理结果或异常。 10. `CompletableFuture.allOf(CompletableFuture<?>... cfs)`:返回一个CompletableFuture对象,该对象在所有给定的CompletableFuture对象都完成后完成。 以上是CompletableFuture的一些常用API,你可以根据具体的需求选择适合的方法来处理异步任务。如果你有具体的问题或需要更多的示例,请告诉我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧浩海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值