作为其中的方法fork();
,compute()
为什么每次方法compute()
发生时都不会被称为另一个并行度?也许有一个布尔标志?
编辑:
覆盖compute()
类 RecursiveTask 的方法:(伪代码)
if {array.length<100)
do it
else
divide array by 2;
fork();
int righta = rightArray.compute();
int lefta =(Integer)leftArray.join();
return righta +lefta;
所以基本上这是compute()
递归调用的方法,当fork()
发生时,它可以使用并行性并使用另一个核心处理该任务。但是,在递归fork()
调用该方法的所有时间都应该调用递归。所以在现实中它不会发生(没有意义)。是不是因为一个布尔标志表明 fork 已经被激活?
提前致谢。