MST
星途 面试题库

面试题:Java中CompletableFuture如何实现简单的并行任务处理

请使用Java的CompletableFuture编写代码示例,实现两个独立的任务并行执行,然后将它们的执行结果汇总并输出。假设这两个任务分别是计算1到100的整数和,以及计算1到50的整数平方和。
27.4万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

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

public class CompletableFutureExample {
    public static void main(String[] args) {
        CompletableFuture<Integer> sumTask = CompletableFuture.supplyAsync(() -> {
            int sum = 0;
            for (int i = 1; i <= 100; i++) {
                sum += i;
            }
            return sum;
        });

        CompletableFuture<Integer> squareSumTask = CompletableFuture.supplyAsync(() -> {
            int squareSum = 0;
            for (int i = 1; i <= 50; i++) {
                squareSum += i * i;
            }
            return squareSum;
        });

        CompletableFuture<Void> combinedFuture = sumTask.thenCombine(squareSumTask, (sum, squareSum) -> {
            System.out.println("1到100的整数和: " + sum);
            System.out.println("1到50的整数平方和: " + squareSum);
            return null;
        });

        combinedFuture.join();
    }
}