MST

星途 面试题库

面试题:Java中CompletableFuture allOf协调多个异步任务的基本使用

请使用Java的CompletableFuture的allOf方法实现以下场景:有三个异步任务,任务1返回字符串'任务1完成',任务2返回字符串'任务2完成',任务3返回字符串'任务3完成'。当这三个任务都完成后,将它们的结果拼接成一个新字符串并输出,同时要处理可能出现的异常。请写出完整代码。
21.2万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

public class CompletableFutureExample {
    public static void main(String[] args) {
        CompletableFuture<String> task1 = CompletableFuture.supplyAsync(() -> "任务1完成");
        CompletableFuture<String> task2 = CompletableFuture.supplyAsync(() -> "任务2完成");
        CompletableFuture<String> task3 = CompletableFuture.supplyAsync(() -> "任务3完成");

        CompletableFuture<Void> allTasks = CompletableFuture.allOf(task1, task2, task3);

        allTasks.thenApply(v -> {
            try {
                return task1.get() + task2.get() + task3.get();
            } catch (InterruptedException | ExecutionException e) {
                throw new RuntimeException(e);
            }
        }).thenAccept(System.out::println)
         .exceptionally(ex -> {
              System.err.println("发生异常: " + ex.getMessage());
              return null;
          });
    }
}