import java.util.concurrent.CompletableFuture;
public class AsyncExample {
public static void main(String[] args) {
CompletableFuture userTask = CompletableFuture.supplyAsync(() -> {
simulateDelay(1000);
return "User: Alex";
});
CompletableFuture<String> orderTask = CompletableFuture.supplyAsync(() -> {
simulateDelay(1500);
return "Order: #5521";
});
// Combine both results when they finish
userTask.thenCombine(orderTask, (user, order) -> user + " | " + order)
.thenAccept(System.out::println)
.join(); // Wait for completion
}
private static void simulateDelay(int ms) {
try { Thread.sleep(ms); } catch (InterruptedException e) {}
}
}
import java.util.concurrent.CompletableFuture;
public class AsyncExample {
public static void main(String[] args) {
CompletableFuture userTask = CompletableFuture.supplyAsync(() -> {
simulateDelay(1000);
return "User: Alex";
});
}