原生 JDK 的线程池是优先将任务添加到阻塞队列,等队列满再尝试创建线程,适合 CPU 密集型任务。Tomcat 属于 IO 密集型,所以总是优先尝试新建线程,线程池满了,再添加任务到阻塞队列里排队等待。

剖析Tomcat线程池与JDK线程池的区别和联系!

为什么tomcat要自定义线程池实现?