1
JavaIntermediate#concurrency
java.util.concurrent.Executor decouples task submission from execution. ExecutorService manages a thread pool, returns Futures. Use Executors.newFixedThreadPool or ThreadPoolExecutor for fine control.
ExecutorService pool = Executors.newFixedThreadPool(4); Future<Integer> future = pool.submit(() -> 2 + 2); future.get(); // 4 pool.shutdown();