This isn't entirely correct. The FJP doesn't have a fixed number of threads, it spawns and kills threads as needed. The parallelism level is just the number of processors, and is _roughly_ the number of threads. From the Java 7 docs:

>A ForkJoinPool is constructed with a given target parallelism level; by default, equal to the number of available processors. The pool attempts to maintain enough active (or available) threads by dynamically adding, suspending, or resuming internal worker threads, even if some tasks are stalled waiting to join others. However, no such adjustments are guaranteed in the face of blocked IO or other unmanaged synchronization. The nested ForkJoinPool.ManagedBlocker interface enables extension of the kinds of synchronization accommodated.
http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ForkJoinPool.html

We have to strive to be absolutely (and not precisely) correct in our documentation – it's the standard reference document for futures.