核心概念
核心思想: 分治算法
核心思想: work-stealing(工作窃取)算法WorkQueue双端队列
任务对象: ForkJoinTask (包括RecursiveTask、RecursiveAction 和 CountedCompleter)
执行Fork/Join任务的线程: ForkJoinWorkerThread
线程池: ForkJoinPool
Fork/Join 框架的执行流程
实际运用
注意顺序f1.fork(),f2.fork(), f2.join(),f1.join()
invokeAll(),不用太关系顺序
JDK源码中的运用:
特别注意IO密集型,容易导致全局ForkJoinPool.common阻塞。
Arrays.parallel**();
1 | default Stream<E> parallelStream() { |
1 | // 设置全局并行流并发线程数 |
https://www.pdai.tech/md/java/thread/java-thread-x-juc-executor-ForkJoinPool.html