简介
Java 并发编程中,分工工具是处理复杂并行任务的核心利器。当单个任务过于庞大或具有复杂的依赖关系时,我们需要将其拆分为多个子任务并行执行,最后汇总结果。Java 提供了多种分工工具来应对不同场景:ForkJoinPool 面向分治递归任务,CompletableFuture 面向异步编排与聚合,CompletionService 面向批量并行任务的结果收集。
对于简单的并行任务,你可以通过"线程池 + Future"的方案来解决;如果任务之间有聚合关系,无论是 AND 聚合还是 OR 聚合,都可以通过 CompletableFuture 来解决;而批量的并行任务,则可以通过 CompletionService 来解决。
2020/7/14大约 22 分钟