ForkJoinPool.invokeAll(ArrayList <g extends =“”recursivetask <t =“”>)</g>

时间:2014-05-23 18:55:40

标签: java fork-join

我尝试使用RecursiveTask<Double>ForkJoinPool上调用invokeall()个实例的列表,但它会抱怨这些类型。

我不确定为什么它不起作用。

我有任务类,定义如下:

public class WorkerTask<G extends Game> extends RecursiveTask<Double> 

我创建了n这些任务,然后我想让它们放在ForkJoinPool中。我知道我可以使用pool.invoke(getValue)逐个调用它们,但这不是我最终想要的。

docs告诉我它必须是实现Callable的对象列表。我将类型层次结构向上追溯到ForkJoinTask。在那里,我可以看到一个定义了static final class AdaptedCallable<T> extends ForkJoinTask<T>的类,所以我认为它应该有效。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

根据api ForkJoinTask没有实现任何Callable接口?

查看this示例我不确定您是否应该在ForkJoinPool上使用invokeAll。您应该将新的WorkerTask添加到compute方法本身的列表中,然后调用invokeAll(List<WorkerTask>)