2 回答
TA贡献1963条经验 获得超6个赞
@Async
注释假设被注释的方法返回Future
. 有一个Future
你刚才有没有其他的方式来使用的结果,除了调用Future.get()
它returs异步过程完成后严格。也就是说,正确实现异步服务,你就没有麻烦了。
TA贡献1799条经验 获得超8个赞
你可以用CompletableFuture. 下面是一个例子:
CompletableFuture.allOf(
CompletableFuture.runAsync(() ->
asyncService.studentMap(students);//make it synchronized call
),
CompletableFuture.runAsync(() ->
asyncService.teacherMap(teachers);// make it synchronized call
).thenRun(() -> {
//do after complete 2 async call.
}).get();
您的服务呼叫需要同步:
@Service
public class AsyncService {
public Hashmap<int, Student> studentMap(List<String> students) {
//contains database call
return result1;
}
public Hashmap<int, Teacher> teacherMap(List<String> teachers) {
//contains database call
}
}
添加回答
举报