jdk7 并行计算框架Fork/Join

末蓝、 2022-08-19 08:54 194阅读 0赞

jdk7 并行计算框架Fork/Join

故名思义,拆分fork+合并join。jdk1.7整合Fork/Join,性能上有大大提升。

思想:充分利用多核CPU把计算拆分成多个子任务,并行计算,提高CPU利用率大大减少运算时间。有点像,MapReduce思路感觉大致一样。

jdk7中已经提供了最简洁的接口,让你不需要太多时间关心并行时线程的通信,死锁问题,线程同步,下面是它提供的接口:

下面列举一个简单的实例:

  1. package tank.forjoin.demo;
  2. import java.util.concurrent.RecursiveTask;
  3. public class Demo1 extends RecursiveTask<Integer> {
  4. private int start;
  5. private int end;
  6. public Demo1(int start, int end) {
  7. this.start = start;
  8. this.end = end;
  9. }
  10. //计算
  11. @Override
  12. protected Integer compute() {
  13. int sum = 0;
  14. if (start - end < 100) {
  15. for (int i = start; i < end; i++) {
  16. sum += i;
  17. }
  18. } else {//间隔有100则拆分多个任务计算
  19. int middle = (start + end) / 2;
  20. Demo1 left = new Demo1(start, middle);
  21. Demo1 right = new Demo1(middle + 1, end);
  22. left.fork();
  23. right.fork();
  24. sum = left.join() + right.join();
  25. }
  26. return sum;
  27. }
  28. }

发表评论

表情:
评论列表 (有 0 条评论,194人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ForkJoin框架

    介绍 Fork/Join它可以将一个大的任务拆分成多个子任务进行并行处理,最后将子任务结果合并成最后的计算结果,并进行输出。Fork/Join框架要完成两件事情: Fo

    相关 Java 7 Fork/Join 并行计算框架概览

     应用程序并行计算遇到的问题     当硬件处理能力不能按摩尔定律垂直发展的时候,选择了水平发展。多核处理器已广泛应用,未来处理器的核心数将进一步发布,甚至达到上百

    相关 Java7 ForkJoin框架详解

    Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。Fork/Join框架要完