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 任务编排知识总结的主要内容,如果未能解决你的问题,请参考以下文章

第198天学习打卡(谷粒商城 项目 排错)

Java学习笔记总结

Leetcode_198_House Robber

java基础学习总结

Java菜鸟学习总结Java基础知识(类)

Java基础学习总结(197)—— CompletableFuture 异常处理总结