java.util.concurrent
パッケージ初心者です。私はいくつかのサンプルを書き込もうとしています。これが私のサンプルコードスニペットです:
for (MyTask task : tasks) {
Future<Boolean> result = task.getResult();
try {
if (result.isCancelled()) {
logger.info("processResults(): cancelled: "+ ((MyTask) task).getName());
} else if (result.get() == false) {
logger.info("processResults(): Failed : "+ ((MyTask) task).getName());
} else {
logger.info("processResults(): successful: "+ ((MyTask) task).getName());
tasks.remove(task);
continue;
}
} catch (Exception e) {
logger.warn("processResults(): Excepiton: " + e.getMessage());
}
}
ワーカー スレッドからの Future オブジェクトの処理に関して 1 つ質問があります。私のforループでは、タスクの処理は順次行われます。たとえば、ワーカー スレッドから返された結果を処理する必要があるとします。2 番目のワーカー スレッドが最初のワーカー スレッドより前に完了した場合、私のコードでは 2 番目のワーカー スレッドを最初に処理する方法がありません。
現在のスレッドを処理するための最良の方法を提案できる人はいますか?
ありがとう、ベンカット・パパナ