说我有一个方法
@RestController
@RequestMapping(value = "/")
public class AppController {
@Async
@PostMapping(value="/")
public CompletableFuture<> doSomething(@RequestBody ..., HTTPServletResponse response){
//something;
return completableResult;
}
}
我知道该方法将立即返回并释放容器线程。
但是(一段时间后)如何处理返回的值?
有听众吗?
那不会阻塞容器线程之一吗?
是否没有在内部执行诸如future.get()之类的东西?
答案 0 :(得分:0)
有一种方法doSomething.isDone()
来检查将来是否准备就绪。您可以实现if语句来检查isDone是否返回true(并调用.get()
方法来检索将来的内容)。如果返回false,则意味着您需要等待未来。
编辑: 编辑帖子后,我的答案不再那么联系了,但我会按照我所描述的类似方式进行操作。