私は、作業を行うメソッドをオーバーライドし、イテレータのような結果を返すクラスを探しています。このような何か:Java並列作業イテレータ?
ParallelWorkIterator<Result> itr = new ParallelWorkIterator<Result>(trials,threads) {
public Result work() {
//do work here for a single trial...
return answer;
}
};
while (itr.hasNext()) {
Result result = itr.next();
//process result...
}
これは主に、モンテカルロシミュレーションのようなもののために使用されようとしているが、私は、スレッド・プールを設定し、帰国のスレッドを毎回の管理に対処する必要がありますする必要はありません。 うまくいけばがこれを成し遂げていると私は自分自身のクラスをロールバックしましたが、私は十分に自信がなく、このようなものが既に存在するかどうかチェックしたいと思っていました。
編集:すべての試行が完了するまで、各作業方法が戻った後、バックグラウンドで実行を継続し、結果を待ち行列に入れておくことを明確にします。したがって、次のメソッドは、キューに結果が返るまで待つことがあります。
ありがとうございます、それは私が望むすべてをしているようです。私はちょうどjavaがとても冗長でないことを望む。 – job
冗長で曖昧でないのは、両刃の剣の半分です。 –
私が冗長を処理するために行ったことは、ExecutorCompletionServiceを拡張し、送信されたFutureのリストを保持するラッパークラスを作成することでした。 public boolean hasRemaining(){return 0
Tim