摘要:定义模拟耗时操作调用失败调用成功调用执行顺序循环循环调用成功代码异步回调
定义ListenableFuture
</>复制代码
public void getListenableFuture() {
ListenableFutureTask task = new ListenableFutureTask(new Callable() {
@Override
public String call() throws Exception {
Thread.sleep(5000); // 模拟耗时操作
return "success";
}
});
task.addCallback(new ListenableFutureCallback() {
@Override
public void onFailure(Throwable throwable) {
System.out.println("调用失败");
}
@Override
public void onSuccess(String s) {
System.out.println("调用成功:" + s);
}
});
Executors.newSingleThreadExecutor().submit(task);
}
调用
</>复制代码
@GetMapping("test-listen-future")
public void testListenableFuture() {
for (int i = 0; i < 10; i++) {
System.out.println("i = " + i);
}
asyncService.getListenableFuture();
for (int j = 0; j < 10; j++) {
System.out.println("j = " + j);
}
}
执行顺序
循环i
循环j
调用成功:success
代码:springboot ListenableFuture 异步回调
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/77586.html
摘要:定义异步方法,使用来返回异步调用的结果开始做任务一完成任务一,当前线程,耗时毫秒任务一完成开始做任务二完成任务二,当前线程,耗时毫秒任务二完成开始做任务三完成任务三,当前线程,耗时毫秒任务三完成调用执行异步回调异步回调结束调用结果开 定义异步方法,使用Future来返回异步调用的结果 @Async public Future firstTask() throws Int...
摘要:异步处理简介地址相关系列文章异步处理详解分析本文讲到的所有特性皆是基于的,不是基于的。用于异步返回结果,使用自己的,使用负责处理它。配置执行异步操作需要用到,这个可以在用方法来提供相关文档。 Spring MVC异步处理简介 Github地址 相关系列文章: Servlet 3.0 异步处理详解 Servlet 3.1 Async IO分析 本文讲到的所有特性皆是基于Servlet...
阅读 671·2021-11-18 10:02
阅读 1140·2021-11-02 14:41
阅读 765·2021-09-03 10:29
阅读 2048·2021-08-23 09:42
阅读 2853·2021-08-12 13:31
阅读 1280·2019-08-30 15:54
阅读 2029·2019-08-30 13:09
阅读 1515·2019-08-30 10:55