Java 9 中 CompletableFuture API 的改进有哪些?
CompletableFuture API 用于 Java 中的异步编程。这意味着我们可以通过在与主()线程不同的线程上运行任务并通知主()线程其进度、完成或失败来编写非阻塞代码。Java 9 在CompletableFuture API 中引入了一些改进,它们是:“支持超时和延迟”、“改进的子类支持”和“新增工厂方法”。
支持超时和延迟
public CompletableFuture<T> orTimeout(long timeout, TimeUnit unit)
上述方法用于指定如果任务在特定时间段内未完成,程序将停止并抛出TimeoutException。
public CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit)
上述方法使用提供的值完成CompletableFuture。如果没有,它会在给定的超时之前完成。
改进的子类支持
public Executor defaultExecutor()
上述方法返回用于异步方法的默认执行器,这些方法不显示执行器。它可以在子类中被覆盖以返回一个执行器,以提供至少一个独立线程。
public <U> CompletableFuture<U> newIncompleteFuture()
上述方法返回一个新的未完成的 CompletableFuture,该规范将由CompletionStage方法返回。
新的工厂方法
public static <U> CompletableFuture<U> completedFuture(U value)
上述工厂方法返回一个新的CompletableFuture,该方法已使用提供的值完成。
public static <U> CompletionStage<U> completedStage(U value)
上述工厂方法返回一个新的CompletionStage,该方法已使用提供的值完成,并且仅与接口CompletionStage中可用的那些方法兼容。
广告