我是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 对象的问题。在我的 for 循环中,任务的处理是按顺序进行的;可以说,我需要处理来自工作线程的返回结果,如果我的第二个工作线程在第一个工作线程之前完成,那么在我的代码中没有办法先处理第二个工作线程。
任何人都可以建议处理当前线程的最佳方法。
谢谢,文卡特帕帕纳