Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 杂项

Java API 和框架

Java 类参考

Java 有用资源

Java - CompletableFuture API 增强



CompletableFuture 类是在 Java 8 中引入的,用于表示可以显式设置其值和状态的 Future。它可以用作 java.util.concurrent.CompletionStage。它支持依赖函数和操作,这些函数和操作在 future 完成时触发。在 Java 9 中,CompletableFuture API 进行了进一步增强。以下是对 API 做出的相关更改。

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

支持延迟和超时

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

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

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

如果在给定的超时时间之前未完成,则此方法使用 TimeoutException 异常完成此 CompletableFuture。

改进对子类的支持

public Executor defaultExecutor()

它返回用于未指定执行器的异步方法的默认执行器。此方法可以在子类中被重写以返回一个执行器,以提供至少一个独立线程。

public <U> CompletableFuture<U> newIncompleteFuture()

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

新的工厂方法

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

此工厂方法返回一个新的 CompletableFuture,该 CompletableFuture 已使用给定值完成。

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

此工厂方法返回一个新的 CompletionStage,该 CompletionStage 已使用给定值完成,并且仅支持接口 CompletionStage 中存在的方法。

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

此工厂方法返回一个新的 CompletionStage,该 CompletionStage 已使用给定的异常异常完成,并且仅支持接口 CompletionStage 中存在的方法。

广告