0

我编写了一个简单的代码以使用 Java 分叉连接功能并行运行。

我正在使用 Java 版本 7 (JDK 1.7)

import java.util.concurrent.RecursiveAction;

public class forkedPotential extends RecursiveAction {

    public forkedPotential(double rmin,double rmax,double rstep){

        for (double rad = rmin; rad <= rmax; rad = rad + rstep){
           double V = rad*rad;
           System.out.println(rad+" "+V);
        }

    }

    @Override
    protected void compute() {
        forkedPotential first = new forkedPotential(0.01,1.0,0.1);
        forkedPotential second = new forkedPotential(1.01,2.0,0.1);
        forkedPotential third = new forkedPotential(2.01,3.0,0.1);
        forkedPotential fourth = new forkedPotential(3.01,4.0,0.1);
        forkedPotential fifth = new forkedPotential(4.01,5.0,0.1);
        coInvoke(new forkedPotential(0.01,1.0,0.1),new forkedPotential(1.01,2.0,0.1));
    }

}

我有一个问题,但是无法调用 coInvoke。

cannot find symbol
  symbol: method coInvoke(forkedPotential,forkedPotential)
  location: class forkedPotential
----

这应该是可接受的用途,因为 forkedPotential 扩展了 RecursiveAction。而 Alt-Return 并没有给我任何有用的指导。

我尝试过 coInvoke 的其他用途,例如

        forkedPotential[] tasks = {first,second,third,fourth,fifth};
        coInvoke(tasks);

但没有喜悦。

我不知道为什么找不到这个 coInvoke 函数,因为它是 RecursiveAction 中的一个函数。

任何意见,将不胜感激。

非常感谢。

4

1 回答 1

0

我已经通过替换解决了这个问题

        coInvoke(tasks);

        RecursiveAction.invokeAll(tasks);
于 2016-01-05T15:21:33.477 回答