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 関数が見つからない理由はわかりません。
アドバイスをいただければ幸いです。
どうもありがとうございました。