fork-join排队网络_forkjointask_forkjoinpool源码分析

电脑杂谈  发布时间:2017-04-10 16:07:09  来源:网络整理

fork/join的java7新增加的功能,可以把它理解成一个并发框架。我们通过fork/join能将一个可分解的大任务,分解成多个子任务同步执行,执行完毕后,在将各子任务的结果进行合并,得到最终的结果。fork-join排队网络

使用fork/join,首先要创建fork/join任务,可以通过继承RecursiveAction或RecursiveTask来实现(ForkJoinTask是它们的父类)

RecursiveAction 不返回结果 RecursiveTask 返回结果

常用方法

compute(); 计算方法(分拆的子任务) fork(); // 执行子任务 join(); // 子任务结束后返回对应结果

ForkJoinPool

除此之外,java还提供了个ForkJoinPool的工具类,它实现了工作窃取算法,使得空闲线程能够主动分担从别的线程分解出来的子任务,从而让所有的线程都尽可能处于饱满的工作状态,提高执行效率。fork-join排队网络

常用方法

execute(); //异步执行命令 invoke()和invokeAll(); // 异步执行命令,并返回对应结果 submit(); //异步执行命令,同时返回Future对象

使用方式如下


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-40543-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...