import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.RecursiveTask;
class FibonacciTask extends RecursiveTask<Integer> {
private final int n;
FibonacciTask(int n) {
this.n = n;
}
@Override
protected Integer compute() {
if (n <= 1) {
return n;
} else {
FibonacciTask task1 = new FibonacciTask(n - 1);
FibonacciTask task2 = new FibonacciTask(n - 2);
task1.fork();
task2.fork();
return task1.join() + task2.join();
}
}
}
public class Main {
public static void main(String[] args) {
ForkJoinPool forkJoinPool = new ForkJoinPool();
int result = forkJoinPool.invoke(new FibonacciTask(5));
System.out.println("Result: " + result);
}
}
import java.util.concurrent.CompletableFuture;
public class Main {
public static void main(String[] args) {
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> "Hello");
CompletableFuture<String> chainedFuture = future.thenApplyAsync(s -> s + " World");
chainedFuture.thenAcceptAsync(result -> System.out.println("Result: " + result));
chainedFuture.join();
}
}