【发布时间】:2019-10-24 14:38:57
【问题描述】:
我需要为每个分区创建一个新的ForkJoinTask,并且不知道如何到达数组中的下一个位置。有人可以帮我吗?
protected static double parManyTaskArraySum(final double[] input, final int numTasks) {
double sum = 0;
// ToDo: Start Calculation with help of ForkJoinPool
ForkJoinPool fjp = new ForkJoinPool(numTasks);
fjp.execute(() -> {
sum+=( 1 / input[???] ); //the problem is here
});
return sum;
}
例外:从 lambda 表达式引用的局部变量必须是 final 或有效 final
【问题讨论】:
-
我没有看到任何循环。并且错误消息是关于
sum,如消息所述,您无法从 lambda 进行修改。