jdk7 并行计算框架Fork/Join故名思义,拆分fork+合并join。jdk1.7整合Fork/Join,性能上有大大提升。
思想:充分利用多核CPU把计算拆分成多个子任务,并行计算,提高CPU利用率大大减少运算时间。有点像,MaPReduce思路感觉大致一样。
jdk7中已经提供了最简洁的接口,让你不需要太多时间关心并行时线程的通信,死锁问题,线程同步,下面是它提供的接口:
简单示例:
package tank.forjoin.demo;import java.util.concurrent.RecursiveTask;/** * @author tank * @date:2014-8-27 下午01:30:06 * @description: * @version :任务 * futrue: * forkjoinTask:recursiveTask recursiveAction */public class Demo1 extends RecursiveTask<Integer> { private int start; private int end; public Demo1(int start, int end) { this.start = start; this.end = end; } //计算 @Override protected Integer compute() { int sum = 0; if (start - end < 100) { for (int i = start; i < end; i++) { sum += i; } } else {//间隔有100则拆分多个任务计算 int middle = (start + end) / 2; Demo1 left = new Demo1(start, middle); Demo1 right = new Demo1(middle + 1, end); left.fork(); right.fork(); sum = left.join() + right.join(); } return sum; }}
package tank.forjoin.demo;import java.util.concurrent.ExecutionException;import java.util.concurrent.ForkJoinPool;import java.util.concurrent.Future;import org.junit.Test;/** * @author tank * @date:2014-8-27 下午01:50:20 * @description: * @version : */public class TestDemo1 { @Test public void testDemo1() throws InterruptedException, ExecutionException { ForkJoinPool forkJoinPool = new ForkJoinPool();//对线程池的扩展 Future<Integer> result = forkJoinPool.submit(new Demo1(1, 10000)); System.out.println(result.get());forkJoinPool.shutdown(); }}
RecursiveAction 无返回值任务。RecursiveTask有返回值类型。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