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;
});
}
}