- 0
- 0
- 约8.9千字
- 约 10页
- 2026-07-09 发布于北京
- 举报
table{border-collapse:collapse;}table,th,td{border:1pxsolid#000;}
26-ForkJoin:单机版的MapReduce
前面几篇文章我们介绍了线程池、Future、CompletableFuture和CompletionService,仔细
观察你会发现这些工具类都是在帮助我们站在任务的视角来解决并发问题,而不是让我们
纠缠程之间如何协作的细节上(比如线程之间如何实现等待、等)。对于简单的
并行任务,你可以通过“线程池+Future”的方案来解决;如果任务之间有聚合关系,无论是
AND聚合还是OR聚合,都可以通过CompletableFuture来解决;而批量的并行任务,则
可以通过CompletionService来解决。
讲,并发编程可以分为三个层面的问题,分别是分工、协作和互斥,当你关注于
任务的时候,你会发现你的视角已经从并发编程的细节中跳出来了,你应用的的是现
实世界的思维模式,类比的往往是现实世界里的分工,所以我把线程池、Future、
CompletableFuture
原创力文档

文档评论(0)