使用CompletableFuture的静态方法allOf()可以将多个CompletableFuture对象同时进行,并且等待它们全部完成。然后使用join()方法获取各个CompletableFuture的返回值。

下面是一个示例代码:

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

public class CompletableFutureExample {
    public static void main(String[] args) {
        CompletableFuture<String> future1 = CompletableFuture.supplyAsync(() -> "Hello");
        CompletableFuture<String> future2 = CompletableFuture.supplyAsync(() -> "World");

        CompletableFuture<Void> allFutures = CompletableFuture.allOf(future1, future2);

        try {
            allFutures.get();
            String result1 = future1.join();
            String result2 = future2.join();

            System.out.println(result1 + " " + result2);
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }
    }
}

在这个示例中,我们创建了两个CompletableFuture对象future1future2,每个CompletableFuture对象都是通过supplyAsync()方法创建的,这个方法用于执行一个异步任务。然后我们使用allOf()方法将这两个CompletableFuture对象进行并行执行,并等待它们全部完成。最后使用join()方法获取各个CompletableFuture的返回值,并打印输出。

运行这个示例代码,输出结果为Hello World

使用CompletableFuture如何将多个future同时进行并获取返回值?

原文地址: https://www.cveoy.top/t/topic/ioip 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录