Skip to content

Java异步编程CompletableFuture(串行,并行,批量执行)

更新: 2/21/2025 字数: 0 字 时长: 0 分钟

什么是CompletableFuture?

在Java中CompletableFuture用于异步编程,异步编程是编写非阻塞的代码,运行的任务在一个单独的线程,与主线程隔离,并且会通知主线程它的进度,成功或者失败。在这种方式中,主线程不会被阻塞,不需要一直等到子线程完成。主线程可以并行的执行其他任务。 使用这种并行方式,可以极大的提高程序的性能。

CompletableFuture 是 Java 8 引入的一个类,用于简化异步编程模型。它是 Future 接口的一个增强版本,提供了更加丰富的功能和更灵活的用法

CompletableFuture是一个Java库中的类,用于处理异步编程。它提供了一种简化异步操作的方式,可以更方便地编写异步代码,并处理异步任务的结果。

使用CompletableFuture可以简化异步编程的复杂性,并提供更灵活和强大的功能。它是Java 8中新增的功能之一,为开发者提供了更好的异步编程体验。

CompletableFuture可以用于以下几种情况:

  • 异步执行任务:可以使用CompletableFuture来执行一个耗时的任务,而不会阻塞主线程。
  • 组合多个异步任务的结果:可以将多个CompletableFuture串联起来,以便在它们都完成后执行一些操作。
  • 处理异常情况:可以使用CompletableFuture来处理异步任务中可能出现的异常情况。
  • 并发执行多个任务 :可以使用CompletableFuture来同时执行多个任务,并等待它们全部完成。
java
@Sl4j
@DisplayName("示例CompletableFuture")
class AsyncTest{
  
  @Test
  @DisplayName("串行执行")
  void serial(){
    CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
      sleep(1000);
      log.info("执行任务1");
    }).thenRunAsync(() -> {
      sleep(1000);
      log.info("执行任务2");
    });
    future.join();
  }
  
}