Java基础学习总结(198)—— 异步编程利器 CompletableFuture 使用详解

Posted 科技D人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础学习总结(198)—— 异步编程利器 CompletableFuture 使用详解相关的知识,希望对你有一定的参考价值。

一、简介

1.1、概述

我们知道 Future 的有局限性,它没法直接对多个任务进行链式、组合等处理,需要借助并发工具类才能完成,实现逻辑比较复杂。而 CompletableFuture 是对 Future 的扩展和增强。CompletableFuture 实现了 Future 接口,并在此基础上进行了丰富的扩展,完美弥补了 Future 的局限性,同时 CompletableFuture 实现了对任务编排的能力。借助这项能力,可以轻松地组织不同任务的运行顺序、规则以及方式。从某种程度上说,这项能力是它的核心能力。而在以往,虽然通过CountDownLatch等工具类也可以实现任务的编排,但需要复杂的逻辑处理,不仅耗费精力且难以维护。CompletableFuture 的继承结构如下:

 CompletionStage 接口定义了任务编排的方法,执行某一阶段,可以向下执行后续阶段。异步执行的,默认线程池是 ForkJoinPool.commonPool(),但为了业务之间互不影响,且便于定位问题,强烈推荐使用自定义线程池。CompletableFuture 中默认线程池如下:

// 根据commonPool的并行度来选择,而并行度的计算是在ForkJoinPool的静态代码段完成的
private static final boolean useCommonPool =
    (ForkJoinPool.getCommonPoolParallelism() > 1);

priva

以上是关于Java基础学习总结(198)—— 异步编程利器 CompletableFuture 使用详解的主要内容,如果未能解决你的问题,请参考以下文章

Java8 异步编程利器 CompletableFuture 详解(全网看这一篇就行)

异步编程利器:CompletableFuture如何操作?

总结办公&编程&学习你可能需要这些小利器!

异步编程利器:CompletableFuture详解

Java8 异步编程利器 CompletableFuture 详解(全网看这一篇就行)

Java 8 的异步编程利器 CompletableFuture 详解