ListenableFuture类
- ListenableFuture对Future进行了扩展,允许注册一个回调函数,task执行完后自动调用。
正如我们获取Future对象要通过ExecutorService.submit(Callable)来获取一样,我们可以这样创建ListenableFuture对象:
executorService = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(NUM_THREADS));
ListenableFuture<String> listenableFuture = executorService.submit(
new
Callable<String>()...);
listenableFuture.addListener(
new
Runnable() {
@Override
public
void
run() {
methodToRunOnFutureTaskCompletion();
}
}, executorService);
|
FutureCallback类
- FutureCallback定义了onSuccess和onFailure方法,onSuccess方法会接收一个Future对象,这样我们就可以获取Future的结果。
/**
* 定义一个FutureCallBack实现类
*/
public
class
FutureCallbackImpl
implements
FutureCallback<String> {
private
StringBuilder builder =
new
StringBuilder();
|