Spring Boot线程机制疑问:并发请求是否自动创建对应线程?
Spring Boot并发请求的线程处理机制
- 默认情况下,Spring Boot内嵌的Web容器(比如Tomcat、Jetty)会维护一个请求处理线程池,并非只用单主线程处理请求。当5个用户同时发起API调用时,只要线程池有足够空闲线程(默认核心线程数通常为10,完全覆盖5个并发场景),容器会分配5个独立线程分别处理这5次请求。
- 你提到的“异步线程配置”和Web容器的请求处理线程是两回事:异步配置(比如
@Async注解)用于在业务逻辑内部开启异步任务,让业务代码脱离请求线程执行;而Web容器的请求线程池是默认自带的,负责接收并初步处理HTTP请求,和业务异步无关。 - 可以通过简单测试验证:在Controller的接口方法中添加代码
System.out.println(Thread.currentThread().getName());,并发调用时会输出类似http-nio-8080-exec-1、http-nio-8080-exec-2这样不同的线程名称,直接证明是多线程处理请求。
内容的提问来源于stack exchange,提问作者Adam Abdullah
相关产品推荐
相关产品推荐

