This document discusses Java's Fork Join framework for parallel processing on multicore systems. It introduces the history of single-core versus multicore processing. The Fork Join framework allows dividing problems into smaller sub-problems ("forking") that can execute concurrently on different cores, with the ability to join results together. It uses a ForkJoinPool that implements work-stealing to efficiently schedule many small tasks across available cores. Examples include summing the elements of an array in parallel.