Spring 进阶-第五篇:Spring MVC-异步处理与并发优化
一、异步请求处理
在传统 Servlet 模型中,一个请求对应一个线程直至处理完成,可能导致线程资源浪费。Spring MVC 的异步处理通过分离 请求接收线程(Servlet 线程) 和 业务处理线程,释放 Servlet 线程以处理其他请求,显著提升系统吞吐量。
1.1 异步方法返回类型
Spring MVC 支持三种异步返回类型,分别适用于不同场景:
1. Callable<X>
-
特点:将业务逻辑封装为
Callable
任务,由 Spring 管理的线程池执行,返回值为异步结果。 -
流程:
- Servlet 线程接收请求后,立即返回
Callable
给容器。 - 容器将任务提交至异步线程池,Servlet 线程释放回 Tomcat 线程池。
- 任务完成后,容器将结果序列化并
- Servlet 线程接收请求后,立即返回