Why doesn't the common ForkJoinPool try to use all cores?
<p>I understand why thread pool sizes are tied to the number of CPU cores, but why did the designers of <code>ForkJoinThread</code> default to using <code># of cpu cores - 1</code> threads? Why the <code>-1</code>?</p>

<p>If I am constructing my own <code>ForkJoinPool</code> (not using the common instance), and the <code>main</code> thread is blocked on the pool waiting for it to return some result, is there any reason I would want to allocate less than <code>Runtime.getRuntime().availableProcessors()</code> threads?</p>

<p><strong>UPDATE</strong>: Please explain why you are down-voting. Otherwise, I can't improve the question.</p>