spring提供了一个ListenableFuture,其是jdk的Future的封装,用来支持回调(成功/失败),其借鉴了com.google.common.util.concurrent.ListenableFuture。
@Test
public void test() throws InterruptedException, ExecutionException{ListenableFutureTask<String> task = new ListenableFutureTask<String>(new Callable<String>() {
@Override
public String call() throws Exception {
return "1";
}
});
task.addCallback(new ListenableFutureCallback<String>() {
@Override
public void onSuccess(String result) {
System.out.println(result);
System.out.println("成功了。。。。。");
}
@Override
public void onFailure(Throwable ex) {
ex.printStackTrace();
System.out.println("失败了。。。。。");
}
});
ExecutorService executorService = Executors.newSingleThreadExecutor();
executorService.submit(task);
String result = task.get();
System.out.println(result);
}