首页 > 技术文章 > fork/join 框架源码读后感总结。别的文档都不够清晰

tecnologycc 2020-07-30 22:56 原文

fork/join 框架源码读后感总结。别的文档都不够清晰
组件组成:
forkjoinworkthread forkjointask的子任务cursivetask(实现compute方法 里面调用Fork.join方法) 双端队列 forkjoinpool中执行任务
一个线程对应一个属于双端工作队列。 优先处理自己队列的内容 处理完后,线程如果闲着去别的线程的队列尾去偷任务
 
fork()的源码中异步加入到任务队列中。然后直接返回,这个双端队列会唤醒或者新建一个线程来处最新加入的任务
 
如果任务中的子任务未完成,则吧当前任务放一边。去处理自己队列中心加入的任务,当子任务都处理完后,会通知父任务进行处理 当线程自己的队列完工后,会去偷取临近队列中尾的任务,
好处1充分利用cpu多核优势。2解决递归中父线程因为子线程阻塞问题,饼大量获得新线程问题。
3减少对队列的同步的消耗。使cpu集中于计算。
 

推荐阅读