java DeferredResult的应用
--- ### **核心问题:为什么“线程被释放了,但业务还能继续执行”?** **关键点**:`DeferredResult`的异步处理是通过**切换线程执行任务**实现的,而不是“让当前线程一直阻塞”。以下是详细说明: --- ### **1. 同步请求的线程浪费问题** 在传统的**同步请求处理模型**中: 1. 用户发起一个HTTP请求(例如:`/slow-endpoint`)。 2. 服务器分配一个线程(来自Tomcat/Jetty的线程池)处理该请求。 3. 这个线程执行业务逻辑(比如调用外部API需要5秒、计算复杂数据等)。 4. 线程直到所有操作完成才会释放,返回HTTP响应。 **问题**:如果这个操作需要5秒,那么: - 这个线程被独占5秒,无法处理其他请求。 - 如果所...阅读全文