public class MyTask extends RecursiveTask<Integer> { private int start; private int end; public MyTask(int start, int end) { this.start = start; this.end = end; } @Override protected Integer compute() { int sum = 0; if (end - start <= 100) { for (int i = start; i <= end; i++) { sum += i; } } else { int mid = (start + end) / 2; MyTask leftTask = new MyTask(start, mid); MyTask rightTask = new MyTask(mid + 1, end); leftTask.fork(); rightTask.fork(); sum = leftTask.join() + rightTask.join(); } return sum; } } public class Main { public static void main(String[] args) { ForkJoinPool forkJoinPool = new ForkJoinPool(); MyTask task = new MyTask(1, 1000); int result = forkJoinPool.invoke(task); } }


上一篇:
下一篇:
切换中文