import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
public class CompletableFutureAnyOfExample {
public static void main(String[] args) throws ExecutionException, InterruptedException {
CompletableFuture<Integer> future1 = CompletableFuture.supplyAsync(() -> {
// 模拟任务1
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return 42;
});
CompletableFuture<String> future2 = CompletableFuture.supplyAsync(() -> {
// 模拟任务2
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Hello, World!";
});
CompletableFuture<Boolean> future3 = CompletableFuture.supplyAsync(() -> {
// 模拟任务3
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return true;
});
CompletableFuture<Object> anyOfFuture = CompletableFuture.anyOf(future1, future2, future3);
Object result = anyOfFuture.get();
System.out.println("任意一个任务完成的结果: " + result);
}
}