Source: http://acs.ase.ro/Media/Default/documents/java/lectures/c08_JSE_MultiThreadingLambda_HPC_ForkJoinUtilConcurrent.pdf