我的问题与java多线程编程有关。
我正在处理创建许多工作人员的主线程,每个工作人员都是一个线程。
为了从工作人员到主线程获取结果/错误,我使用了 Callable 和 Future。
我确实在番石榴FutureCallback接口中找到了从工作人员那里获取异常的信息。
我的问题是如何使用它,因为我在网上没有找到任何示例。
谢谢 !
问问题
2811 次
1 回答
3
这是整数结果的示例:
ListeningExecutorService executor = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(4));
int runs = 100;
for (int k=0; k < runs; k++) {
Callable<Integer> job = ...; // create the job here
ListenableFuture<Integer> completion = executor.submit(job);
Futures.addCallback(completion, new FutureCallback<Integer>() {
@Override
public void onFailure(Throwable t) {
// log error
}
@Override
public void onSuccess(Integer result) {
// do something with the result
}
});
}
executor.shutdown();
while (!executor.isTerminated()) {
executor.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
}
于 2013-08-14T09:00:46.683 回答