15.什么是ForkJoin框架?

 

 

 

什么是ForkJoin框架?

 

 

 

什么是focusjoin框架,focusjoin是一个把大任务分割成若干个小任务,在对每个小任务得到的结果进行汇总,得到大任务结果的框架,简而言之就是分割任务和合并结果,

 

 

 

 

 

focusjoin中focus表示分割任务,join表示合并结果。

 

 

下面动画演示工作原理,这是一个大任务,根据focusjoin工作原理,将它一分为二,分割成两个子任务,

 

 

再将这2个子任务分割成4个子任务,

 

 

接着将4个子任务分割成8个子任务,任务还不够小,继续将8个子任务分割成16个子任务,

 

 

这样就差不多了,将大任务分割完以后,接下来就是执行这些子任务,子任务全部执行完毕以后,

 

 

将这16个子任务的执行结果合并成8个结果,

 

 

 

 

 

再将这8个结果合并成4个结果,

 

 

再将这4个结果合并成2个结果,

 

 

最后将这2个结果合并成最终结果,最终结果就是大任务的结果。

 

 

 

至此大任务执行完成,看完动画如果还不理解没关系,

我们来看focusjoin流程图,用流程图来表示可能会更直观,这是我们要执行的大任务,将其分割成两个子任务,

 

 

 

 

 

两个子任务继续分割,

 

 

分割到足够小以后,

 

 

将这些子任务提交给线程池去执行,这种方式远比让一个线程去执行大任务要高效的多,他们执行完以后,

 

 

根据focusjoin的工作原理,合并其子任务执行结果,不断合并结果,

 

 

直至合并出大任务的结果为止。至此大任务通过分割任务与合并结果的方式执行完毕。

 

 

如果我们在流程图中间画一道分割线的话,上半部分就是在fork,也就是在分割任务,下半部分就是在join,也就是在合并结果,这次focusjoin流程图整个就是这样,

 

 总结

最后来总结一下本节内容。


本节介绍了什么是
focusjoin框架,它的概述和工作原理,这里就不再赘述了。下一节介绍一个采用focusjoin框架的线程池,focusjoinPool 

 

 


  

附录:

笔记完整文本:

什么是focusjoin框架,focusjoin是一个把大任务分割成若干个小任务,在对每个小任务得到的结果进行汇总,得到大任务结果的框架,简而言之就是分割任务和合并结果,focusjoin中focus表示分割任务,join表示合并结果。下面动画演示工作原理,这是一个大任务,根据focusjoin工作原理,将它一分为二,分割成两个子任务,再将这2个子任务分割成4个子任务,接着将4个子任务分割成8个子任务,任务还不够小,继续将8个子任务分割成16个子任务,这样就差不多了,将大任务分割完以后,接下来就是执行这些子任务,子任务全部执行完毕以后,将这16个子任务的执行结果合并成8个结果,再将这8个结果合并成4个结果,再将这4个结果合并成2个结果,最后将这2个结果合并成最终结果,最终结果就是大任务的结果。 至此大任务执行完成,看完动画如果还不理解没关系,我们来看focusjoin流程图,用流程图来表示可能会更直观,这是我们要执行的大任务,将其分割成两个子任务,两个子任务继续分割,分割到足够小以后,将这些子任务提交给线程池去执行,这种方式远比让一个线程去执行大任务要高效的多,他们执行完以后,根据focusjoin的工作原理,合并其子任务执行结果,不断合并结果,直至合并出大任务的结果为止。至此大任务通过分割任务与合并结果的方式执行完毕。如果我们在流程图中间画一道分割线的话,上半部分就是在fork,也就是在分割任务,下半部分就是在join,也就是在合并结果,这次focusjoin流程图整个就是这样,最后来总结一下本节内容。 本节介绍了什么是focusjoin框架,它的概述和工作原理,这里就不再赘述了。下一节介绍一个采用focusjoin框架的线程池,focusjoinPool

 

posted @ 2022-03-28 19:48  小陈子博客  阅读(62)  评论(0)    收藏  举报