文章预览
架构师(JiaGouX) 我们都是架构师! 架构未来,你来不来? 之前我们学习了线程池ThreadPoolExecutor,它通过对任务队列和线程的有效管理实现了对并发任务的处理。 然而,ThreadPoolExecutor有两个明显的缺点: 一是无法对大任务进行拆分,对于某个任务只能由单线程执行;二是工作线程从队列中获取任务时存在竞争情况 。这两个缺点都会影响任务的执行效率,要知道高并发场景中的每一毫秒都弥足珍贵。 针对这两个问题,本文即将介绍的 ForkJoinPool 给出了可选的答案。在本文中,我们将首先从分治算法开始介绍,接着体验ForkJoinPool中自定义任务的实现,最后再深入到Java中去理解ForkJoinPool的原理和用法。 一、分治算法与Fork/Join模式 在并发计算中,Fork/Join模式往往用于对大任务的并行计算,它通过递归的方式对任务不断地拆解,再将结果进行合并。如果
………………………………