是一种常见的并发编程模式。CompletableFuture是Java 8引入的一种异步编程工具,它可以用于处理异步任务的执行和结果处理。
在Java中,可以使用CompletableFuture来实现异步启动多个任务并等待它们全部完成的操作。下面是一个示例代码:
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
public class CompletableFutureExample {
public static void main(String[] args) {
// 创建多个CompletableFuture对象
CompletableFuture<String> future1 = CompletableFuture.supplyAsync(() -> task1());
CompletableFuture<Integer> future2 = CompletableFuture.supplyAsync(() -> task2());
CompletableFuture<Double> future3 = CompletableFuture.supplyAsync(() -> task3());
// 等待所有CompletableFuture完成
CompletableFuture<Void> allFutures = CompletableFuture.allOf(future1, future2, future3);
// 处理完成的结果
allFutures.thenRun(() -> {
try {
String result1 = future1.get();
int result2 = future2.get();
double result3 = future3.get();
System.out.println("Task 1 result: " + result1);
System.out.println("Task 2 result: " + result2);
System.out.println("Task 3 result: " + result3);
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
});
// 等待所有任务完成
try {
allFutures.get();
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
private static String task1() {
// 异步任务1
return "Task 1 completed";
}
private static int task2() {
// 异步任务2
return 42;
}
private static double task3() {
// 异步任务3
return 3.14;
}
}
在上述代码中,我们创建了三个CompletableFuture对象,分别代表三个异步任务。通过CompletableFuture.supplyAsync()方法可以将任务提交给线程池异步执行。然后,我们使用CompletableFuture.allOf()方法等待所有任务完成。接着,我们使用CompletableFuture.thenRun()方法处理所有任务完成后的结果。最后,我们使用CompletableFuture.get()方法等待所有任务完成。
这种方式可以实现多个异步任务的并发执行,并在所有任务完成后进行结果处理。它适用于需要同时执行多个独立的异步任务,并等待它们全部完成的场景。
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,具体产品选择应根据实际需求和情况进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云