ForkJoin框架原理与工作窃取算法.pdfVIP

  • 1
  • 0
  • 约小于1千字
  • 约 2页
  • 2026-11-06 发布于北京
  • 举报

什么是ForkJoin框架适用场景

虽然目前处理器数已经发展到很大数目,但是按任务并发处理并不能完全充分的利用处理器,

因为一般的应用程序没有那么多的并发处理任务。基于这种现状,考虑把一个任务拆分成多个单元,每

个单元分别得到执行,最后合并每个单元的结果。

Fork/Join框架是JAVA7的一个用于并行执行任务的框架,是一个把大任务分割成若干小任务,最终

汇总每个小任务结果得到大任务结果的框架。

2.工作窃取算法(work-stealing)

一个大任务拆分成多个小任务,为了减少线程间的竞争,把这些子任务分别放到不同的队列中,并且每

个队列都有单独的线程来执行队列里的任务,线程和队列一一对应。

但是会出现这样一种情况:A线程处理完了自己队列的任务,B线程的队列里还有很多任务要处理。

A是一个很热情的线程,想过去帮忙,但是如果两个线程同一个队列,会产生竞争,所以A想了一个

办法,从双端队列的尾部拿任务执行。而B线程是从双端队列的头部拿任务执行。

注意:线程池中的每个线程都有自己的工作队列(PS,这一点和ThreadPoolExecutor不同,

ThreadPoolExecutor是所有线程公用一个

文档评论(0)

1亿VIP精品文档

相关文档