为什么 SpringBoot 项目中不建议手动 new Thread? 在 SpringBoot 开发中处理异步任务时很多开发者会直接创建新线程。这种写法虽然简单直接但并不适合生产环境。手动创建线程本质上是一种缺乏管控的异步处理方式容易引发线程数量不可控、资源占用过高、服务稳定性下降等问题。手动创建线程的第一个问题是无法复用资源。每次 new Thread 都会创建一个全新的线程对象任务结束后线程就会被销毁。如果系统中存在大量短任务频繁创建和销毁线程会带来明显的性能开销。相比之下线程池通过池化思想复用线程能够降低线程创建销毁成本提高任务处理效率。第二个问题是并发资源不可控。如果异步任务没有统一管理请求量增大时线程数量可能持续增长。过多线程会导致 CPU 上下文切换频繁内存占用升高甚至出现线程溢出、服务假死等现象。操作系统能够支持的线程数量有限不能让业务代码无限制地消耗线程资源。第三个问题是不利于工程化治理。在 SpringBoot 项目中线程池可以被统一配置、统一监控、统一异常处理。通过线程池开发者可以限制核心线程数、最大线程数、队列长度和拒绝策略从而让系统在高压力下仍能保持稳定。同时统一线程池也更便于接入链路追踪、日志追踪和告警监控。因此生产项目中应尽量避免手动创建线程而是使用线程池执行异步任务。无论是处理消息、同步数据、生成报表还是记录日志都应该纳入统一的线程管理体系。这不是单纯的代码风格问题而是服务稳定性问题。