当前位置:首页 > JAVA教程 > JAVA基础

Java 9 改进的 CompletableFuture API

java 9 改进的 completablefuture api

java 8 引入了 completablefuture<t> 类,可能是 java.util.concurrent.future<t> 明确的完成版(设置了它的值和状态),也可能被用作java.util.concurrent.completestage 。支持 future 完成时触发一些依赖的函数和动作。java 9 引入了一些completablefuture 的改进:

java 9 对 completablefuture 做了改进:

  • 支持 delays 和 timeouts
  • 提升了对子类化的支持
  • 新的工厂方法
支持 delays 和 timeouts
public completablefuture<t> completeontimeout(t value, long timeout, timeunit unit)

在 timeout(单位在 java.util.concurrent.timeunits units 中,比如 milliseconds )前以给定的 value 完成这个 completablefutrue。返回这个 completablefutrue。

public completablefuture<t> ortimeout(long timeout, timeunit unit)

如果没有在给定的 timeout 内完成,就以 java.util.concurrent.timeoutexception 完成这个 completablefutrue,并返回这个 completablefutrue。

增强了对子类化的支持

做了许多改进使得 completablefuture 可以被更简单的继承。比如,你也许想重写新的 public executor defaultexecutor() 方法来代替默认的 executor。

另一个新的使子类化更容易的方法是:

public <u> completablefuture<u> newincompletefuture()
新的工厂方法

java 8引入了 <u> completablefuture<u> completedfuture(u value) 工厂方法来返回一个已经以给定 value 完成了的 completablefuture。java 9以 一个新的 <u> completablefuture<u> failedfuture(throwable ex) 来补充了这个方法,可以返回一个以给定异常完成的 completablefuture

除此以外,java 9 引入了下面这对 stage-oriented 工厂方法,返回完成的或异常完成的 completion stages:

  • <u> completionstage<u> completedstage(u value): 返回一个新的以指定 value 完成的completionstage ,并且只支持 completionstage 里的接口。
  • <u> completionstage<u> failedstage(throwable ex): 返回一个新的以指定异常完成的completionstage ,并且只支持 completionstage 里的接口。

【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!