CompletableFuture
- is an implementation of Future
Creating CompletableFutures
CompletableFuture<String> completableFuture = CompletableFuture.completedFuture("Hello");
assertEquals("Hello", completableFuture.get());
CompletableFuture<String> completableFuture = CompletableFuture.supplyAsync(() -> "Hello");
assertEquals("Hello", completableFuture.get());
Processing Results of Asynchronous Computations
CompletableFuture<String> future = completableFuture.thenApply(s -> s + " World");
CompletableFuture<Void> future = completableFuture.thenAccept(s -> System.out.println("Computation returned: " + s));
CompletableFuture<Void> future = completableFuture.thenRun(() -> System.out.println("Computation finished."));
Combining Futures
TODO
Multiple Parallel Futures
CompletableFuture<String> future1 = CompletableFuture.supplyAsync(() -> "Hello");
CompletableFuture<String> future2 = CompletableFuture.supplyAsync(() -> "Beautiful");
CompletableFuture<String> future3 = CompletableFuture.supplyAsync(() -> "World");
CompletableFuture<Void> combinedFuture = CompletableFuture.allOf(future1, future2, future3);
combinedFuture.get();
assertTrue(future1.isDone());
assertTrue(future2.isDone());
assertTrue(future3.isDone());