保存成功
订阅成功
保存失败,请重试
提交成功

一文掌握 JDK8 CompletableFuture 的核心原理与实战技能

¥3.99会员免费看
行梭渔人

提到 CompletableFuture,就不得不提到异步编程(异步调用)。所谓异步调用其实就是指调用一个方法(函数)后调用者可以无需等待其返回结果,调用者代码可以直接继续运行。比如在 Java 中,我们可以通过启动一个线程的方式来完成方法调用中的部分计算逻辑,而调用者本身无需同步等待返回结果,可以继续运行或者直接返回。但是某些场景下调用者仍需要获取异步线程的计算结果。此时我们会想到 JDK5 新增的 Future 接口。Future,顾名思义,表示未来(将来时),即用于描述一个异步计算的结果。

虽然说 Future 提供了异步执行任务的能力,但是对于异步计算结果的获取却只能通过阻塞或者主动轮询的方式得到。阻塞的方式显然违背了异步编程的初衷;而轮询的方式又会浪费 CPU 资源,并且不能及时获取到计算结果。能不能让执行异步计算的线程主动向主线程通知其进度,以及成功失败与否呢?这就是本文要介绍的 JDK8引入的 CompletableFuture。

在 Java8 中引入的 CompletableFuture 提供了非常强大的 Future 的扩展功能,降低了异步编程的复杂度,并且提供了函数式编程的能力。相比 Future 的一个明显的优势是可以传入回调函数,当异步计算任务完成或者发生异常时,会主动调用回调对象的回调方法,这就省去了我们主动等待、获取异步计算结果,后者可以认为是一种伪异步模式。CompletableFuture 还提供了多种转换和合并 CompletableFuture 的方法,即可以实现异步任务链。所有的特性和用法都将在本文中娓娓道来。

在本场 Chat 中,将会讲到如下内容:

  • CompletionService 详解
  • CompletableFuture 的基本用法
  • 执行有返回值类型(Supplier)的任务
  • 执行无返回值类型(Runnable)的任务
  • 执行异步任务链
  • 多 Future 合并计算
  • 多 Future 并行计算
  • 自定义 CompletableFuture 使用的线程池
  • 任务异常处理

适合人群:需要在实际开发中使用异步编程的同学,想全面掌握 JDK8 CompletableFuture 用法的初学者。

110 人已订阅
会员免费看
¥3.99 原价订阅
关注提示×
扫码关注公众号,获得 Chat 最新进展通知!
入群与作者交流×
扫码后回复关键字 入群
Chat·作者交流群
入群码
该二维码永久有效
严选标准
知道了
Chat 状态详情
开始预订
预订结果公布06月29日

预订达标,作者开始写作

审核未达标,本场 Chat 终止

作者文章审核结果公布07月09日

审核达标,文章发布

审核未达标,本场 Chat 终止

Chat 完结
×
已购列表