传统线程池 ThreadPoolExecutor 有两个明显的缺点:一是无法对大任务进行拆分,对于某个任务只能由单线程执行;二是工作线程从队列中获取任务时存在竞争情况。这两个缺点都会影响任务的执行效率。为了解决传统线程池的缺陷,Java7 中引入 Fork/Join 框架,并在 Java8 中得到广泛应用。Fork/Join 框架的核心是 ForkJoinPool 类,它是对 AbstractExecutorService 类的扩展。ForkJoinPool 允许其他线程向它提交任务,并根据
设定将这些任务拆分为粒度更细的子任务,这些子任务将由ForkJoinPool内部的工作线程
来并行执行,并且工作线程之间可以窃取彼此之间的任务。
