Java Scala中ForkJoin框架中invoke()和join()的区别
斯卡拉: 我知道Java Scala中ForkJoin框架中invoke()和join()的区别,java,scala,fork-join,Java,Scala,Fork Join,斯卡拉: 我知道f2.compute()会等待所有子任务完成。 但是与join()有什么区别呢? 这和递归有什么关系吗 为什么在f2上直接调用compute(),而不是通过f2.invoke() 非常感谢您的解释/源代码提示 类斐波那契扩展递归任务{ 最终整数n; 斐波那契(int n){this.n=n;} 整数计算(){ 如果(此处为n,invoke和fork之间的区别解释得很好:thx:)这篇文章回答了所有问题——除了“为什么在f2上直接调用compute(),而不是通过f2.invok
f2.compute()
会等待所有子任务完成。
但是与join()有什么区别呢?
这和递归有什么关系吗
为什么在f2
上直接调用compute()
,而不是通过f2.invoke()
非常感谢您的解释/源代码提示
类斐波那契扩展递归任务{
最终整数n;
斐波那契(int n){this.n=n;}
整数计算(){
如果(此处为n,
invoke
和fork
之间的区别解释得很好:thx:)这篇文章回答了所有问题——除了“为什么在f2上直接调用compute(),而不是通过f2.invoke()调用?”在这里,invoke
和fork
之间的区别得到了很好的解释:thx:)这篇文章回答了所有问题——除了“为什么在f2上直接调用compute(),而不是通过f2.invoke()?”
class Fibonacci extends RecursiveTask<Integer> {
final int n;
Fibonacci(int n) { this.n = n; }
Integer compute() {
if (n <= 1)
return n;
Fibonacci f1 = new Fibonacci(n - 1);
f1.fork();
Fibonacci f2 = new Fibonacci(n - 2);
return f2.compute() + f1.join();
}
}