Fork-Join is idiotic. The whole point of multiple threads is to make use of the fact that you have the same virtual address space being utilized by different threads of execution. You either need this for performance or you don't, and you can use it correctly or you can't.
Look at the i7...