Completable future

Java version 1.8 introduced a new implementation of the interface FutureCompletableFuture. The java.util.concurrent.CompletableFuture class can be used to asynchronously execute programs defining callbacks to handle the results. As Java 1.8 also introduced lambda expressions, the callbacks can be described using them:

public static void main(String[] args) throws ExecutionException, InterruptedException { var future = CompletableFuture.supplyAsync(() -> { var negative = true; var pi = 0.0; for (int i = 3; i < 100000; i += 2) { if (negative) pi -= (1.0 / i); else pi += (1.0 / i); negative = !negative; } pi += 1.0; pi *= 4.0; return pi; } ).thenAcceptAsync(piCalculated -> System.out.println("pi is " + piCalculated)); System.out.println("All ...

Get Java Projects - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.