1、参考文档
https://www.ibm.com/developerworks/cn/java/j-lo-forkjoin/
http://www.ibm.com/developerworks/cn/java/j-jtp11137.html
http://www.infoq.com/cn/articles/fork-join-introduction
http://ifeve.com/fork-join-2/
2、ForkJoinPool继承自AbstractExecutorService,也是一个Executor。无参构造函数默认创建的线程数为处理器的数量。
3、ForkJoinPool和其他ExecutorServic的区别
1、ExecutorServic执行的任务都是无关的,但是ForkJoinPool创建的任务是相关的,一个线程需要等待其他的线程创建完成来汇总结果。这造成了线程池的策略和参数配置不同。
2、ExecutorServic的工作队列使用的是Queue,但是ForkJoinPool使用的是DQueue。
3、ForkJoinPool在join另一个线程的时候会阻塞,但是会执行其他的任务,会有很好的负载均衡。