JDK-CompletableFuture

1. 函数式接口

1.1 Supplier

-  无参有返回值的接口。

1.2 Consumer

-  有参无返回值得接口。

1.3 Function<T,R>

-  Function接口是根据一个类型的数据得到另一个类型的数据,前者称为前置条件,后者称为后置条件。

1.4 Predicate

-  有参且返回值为Boolean的接口。

1.5 方法引用

- 在Lambda表达式中要执行的代码和我们另一个方法中的代码是一样的,这时就没有必要重写一份逻辑了,这时我们就可以“引用”重复代码。

2.CompletableFuture 是什么?

CompletableFuture 是 Java 8 中引入的一个实现异步编程类

2.1 API

  1. supplyAsync
    • 有返回参数的异步任务
    • 默认执行的forkjon 线程池中 也可以执行在自定义线程池
  2. runAsync
    • 无返回参数的异步任务
    • 默认执行的forkjon 线程池中 也可以执行在自定义线程池
  3. get
    • 它会阻塞当前线程,直到任务完成并返回结果
  4. get 带超时时间
    • 未完成任务,抛TimeoutException
  5. join
    • join() 方法是 CompletableFuture 类提供的一种获取任务结果的方式,它会阻塞当前线程,直到任务完成并返回结果。
  6. CompletableFuture 提供了一系列方法来处理任务的完成事件,实现异步回调.
  • thenApply 输入参数;
    • T是上一阶段的任务结果类型;
    • 返回值 U 是新阶段的任务结果类型;
    • fn方法对上一阶段的任务结果进行转换操作,并返回一个新的 CompletableFuture 对象。
  • thenAccept
    • 输入参数 T是上一阶段的任务结果类型
      -action方法对上一阶段的任务结果进行消费,并返回一个新的 CompletableFuture 对象
  • thenRun
    • CompletableFuture thenRun(Runnable action)相当于开启一个新的任务
  • thenCombine
    • thenCombine()方法将两个任务的结果进行组合,对他们的结果进行处理并返回新的 CompletableFuture 对象。
  • thenCompose
    • thenCompose方法拿到当前任务的结果之后,再对其结果进行异步操作
posted @ 2025-03-26 15:17  贺艳峰  阅读(18)  评论(0)    收藏  举报