いくつかのタスクを送信してから、すべての結果が利用可能になるまでそれらを待つ必要があります。それぞれがにを追加しString
ますVector
(デフォルトで同期されます)。次に、Vectorの結果ごとに新しいタスクを開始する必要がありますが、これを行う必要があるのは、前のすべてのタスクがジョブの実行を停止した場合のみです。
Java Executorを使用したいのですが、特にExecutors.newFixedThreadPool(100)
固定数のスレッドを使用するために使用しようとしました(10または500の可変数のタスクがあります)が、executorを初めて使用するため、方法がわかりません。タスクの終了を待ちます。これは、私のプログラムが実行する必要があることの擬似コードのようなものです。
ExecutorService e = Executors.newFixedThreadPool(100);
while(true){
/*do something*/
for(...){
<start task>
}
<wait for all task termination>
for each String in result{
<start task>
}
<wait for all task termination>
}
しばらくしていて(true)、再利用する必要があるため、e.shutdownを実行できませんexecutorService
...
手伝って頂けますか?Javaエグゼキュータに関するガイド/本を提案してもらえますか?