0
点赞
收藏
分享

微信扫一扫

Tomcat线程池原理

seuleyang 2022-02-17 阅读 57
tomcat

Tomcat线程池原理

参数解释

maxThreads:最大线程数,tomcat能创建来处理请求的最大线程数(默认值200个线程,1个线程处理1个请求) 
acceptCount:最大等待队列数,请求并发大于tomcat线程池的处理能力,则被放入等待队列等待被处理(默认值100,超过此数tomcat直接拒绝)
connectionTimeout:客户端和8080服务器建立连接的超时时间,单位:毫秒,设置为0表示永不超时,这样设置有隐患的,通常可设置为30000毫秒

线程池原理

场景1

在这里插入图片描述
当同时并发的请求数<200,tomcat启动的线程则不会达到maxThreads,故8080服务进1个请求,就出1个线程对接,过程即 客户端–A--C

场景2

在这里插入图片描述
当同时并发的请求数>200,tomcat启动的线程则会达到maxThreads,故8080服务进1个请求,tomcat会把此请求放入等待队列,等待空闲线程

场景3

在这里插入图片描述
当同时并发的请求数>200,acceptCount排队数>100,故8080服务进1个请求,tomcat会直接拒绝此请求,返回connection refused

总结

maxThreads值不断上升原因

1、并发请求量大
2、代码有瓶颈造成占用的线程不能释放

acceptCount值不断上升原因

1、并发请求量大,已达到maxThreads值
2、代码有瓶颈造成占用的线程不能释放

connectionTimeout

网络或被测服务压力大

connection refused

并发请求量大于maxThreads+acceptCount总和
举报

相关推荐

0 条评论