CompletableFuture基本用法
异步计算
Future 接口的局限性Future接口可以构建异步应用,但依然有其局限性。它很难直接表述多个Future 结果之间的依赖性。实际开发中,我们经常需要达成以下目的:
函数式编程CompletionStage
CompletableFuture
CompletableFuture基本用法创建CompletableFuturethenApply当前阶段正常完成以后执行,而且当前阶段的执行的结果会作为下一阶段的输入参数。thenApplyAsync默认是异步执行的。这里所谓的异步指的是不在当前线程内执行。 thenApply相当于回调函数(callback)
thenAccept与thenRun
thenCombine整合两个计算结果例如,此阶段与其它阶段一起完成,进而触发下一阶段: whenComplete? 最后,举个栗子:事实上,如果每个操作都很简单的话(比如:上面的例子中按照id去查)没有必要用这种多线程异步的方式,因为创建线程还需要时间,还不如直接同步执行来得快。 事实证明,只有当每个操作很复杂需要花费相对很长的时间(比如,调用多个其它的系统的接口;比如,商品详情页面这种需要从多个系统中查数据显示的)的时候用CompletableFuture才合适,不然区别真的不大,还不如顺序同步执行。 ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 2019.9.7 concurrency control和replication control
- java – 使用Gradle将Formatter设置添加到Eclipse和Intell
- java – 什么可以失败WifiP2pManager.connect?
- java – 总是使用’??this’作为监视器锁定是可以接受的吗?
- java – myBatis是否实现JPA?
- Spring配置使用之Bean生命周期详解
- java – 用coldfusion写.properties文件
- JVM 中发生内存溢出的 8 种原因及解决办法
- java – 为Presenter类编写Mockito测试(Presenter First Pa
- Java DES加密解密工具类