<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr166</artifactId>
<version>1.0</version>
</dependency>
ConcurrentMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("key1", 1);
map.put("key2", 2);
public class MyRecursiveTask extends RecursiveTask<Integer> {
private static final int THRESHOLD = 100;
private int[] array;
private int start;
private int end;
public MyRecursiveTask(int[] array, int start, int end) {
this.array = array;
this.start = start;
this.end = end;
}
protected Integer compute() {
if (end - start <= THRESHOLD) {
return someBasicCalculation();
} else {
int mid = (start + end) / 2;
MyRecursiveTask leftTask = new MyRecursiveTask(array, start, mid);
MyRecursiveTask rightTask = new MyRecursiveTask(array, mid, end);
leftTask.fork();
rightTask.fork();
int leftResult = leftTask.join();
int rightResult = rightTask.join();
return combineResults(leftResult, rightResult);
}
}
}