使用CompletableFuture如何将多个future同时进行并获取返回值?
使用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对象future1和future2,每个CompletableFuture对象都是通过supplyAsync()方法创建的,这个方法用于执行一个异步任务。然后我们使用allOf()方法将这两个CompletableFuture对象进行并行执行,并等待它们全部完成。最后使用join()方法获取各个CompletableFuture的返回值,并打印输出。
运行这个示例代码,输出结果为Hello World
原文地址: https://www.cveoy.top/t/topic/ioip 著作权归作者所有。请勿转载和采集!