一、前言
Tomcat 版本
- 注意不同版本差异性,本文以Tomcat 8.0 版本为例
Tomcat 8.0 版本之后,引入了 Executor 接口作为 Tomcat 线程池的核心组件。 多个Connector可以使用同一个线程池来处理请求。
二、Tomcat连接和线程池原理
池化技术是一种常用的提升性能的手段,比如常见的数据库连接池、JAVA字符串的常量池、以及线程池等。
以JAVA中的线程为例,创建一个新线程的背后,其实是调用操作系统的api,消耗宝贵的系统资源,去执行一些业务逻辑。
如果我们频繁的创建销毁线程对象,对于CPU、内存都是一个很大的负担。
所以,线程池就应运而生了。本质上,池化技术是一种以空间换时间的做法。
- 请求数 小于 服务最大数,直接进入服务区
![](https://i-blog.csdnimg.cn/blog_migrate/2dda942f245a036cd32561cb6ede8445.png)
- 请求数,大于服务最大数,开始排队
![](https://i-blog.csdnimg.cn/blog_migrate/867772f31ae13160d68887e01797f402.png)