☰
Java常见技术分享-22-多线程安全-进阶模块-异步任务的协调者-CompletableFuture
2026/10/23 21:17:43 网站建设 项目流程

简介(java.util.concurrent.CompletableFuture)

  • 他实现了Future接口和CompletionStage接口( Future接口提供了一些基础的方法, 用来获取异步任务的结果或者取消任务, 另一个接口则定义了一系列编排异步任务的方法,比如thenApply,allOf等让你可以方便的处理任务之间的依赖关系或者合并多个任务处理的结果)
  • 用来简化异步编程的类, 不用管理线程的创建,启动,销毁,只需要专注于任务以及任务之间的依赖关系(CompletableFuture通过链式调用的方式清晰表达依赖关系),他能帮助我们并行执行多个任务, 并把结果合并。

常用方法

  • 创建异步任务的方法

    • supplyAsync 用在有返回值的任务
    • runAsync 用在没有返回值的任务
  • 处理任务结果的方法

    • thenApply 接受任务执行结果, 并执行新函数 且返回一个新的CompletableFuture (查询用户ID, 完了用用户ID查询订单信息)
    • thenAccept 接口任务执行结果 并执行一些处理, 不会返回新的结果 (查询完订单信息 , 打印日志)
  • 组合多个任务的方法(传入之前创建任务返回的所有CompletableFuture,返回一个CompletableFuture(合并的))
    - allOf 同时启动所有任务且并行执行, 等待所有任务执行完, 才往下走。
    - anyOf 同时启动所有任务且并行执行,等待有一个任务执行完返回那个执行完的任务的结果, 就往下走。

  • 处理异常的方法

    • exceptionally 当任务出现异常, 就会执行exceptionally里的代码返回默认值。
  • 获取任务结果的方法
    - get 阻塞方法, 会抛出检查异常, 必须使用try catch强制处理
    - join 阻塞方法, 会抛出未检查异常, 不必强制处理

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询