0

Java fork join 機能を使用して並列に実行する簡単なコードを作成しました。

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);

しかし、喜びはありません。

RecursiveAction の関数であるため、この coInvoke 関数が見つからない理由はわかりません。

アドバイスをいただければ幸いです。

どうもありがとうございました。

4

1 に答える 1

0

置き換えてこの問題を修正しました

        coInvoke(tasks);

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