Build your own CompletableFuture
Implement a small version of CompletableFuture: a result that some thread completes later, that other threads can wait on, and that can be chained with callbacks. Then use it to process an array in parallel and combine the results.
No answer yet. Write the first one; the best answer gets endorsed.
