一个接口对应一个线程,Tomcat线程池控制线程选择

  • 一直都很好奇同时有多个请求调用我后台接口时是什么样的情况,今天在互联网上搜索了很久终于有了答案;

我们的应用是由Tomcat进行管理的,tomcat才接受到请求时需要调用接口方法处理请求,那么一个请求肯定就对应了一个线程,但是并不是每个请求都会创建一个线程来处理它,因为线程创建与销毁很浪费资源,所以Tomcat维护了一个线程池,线程执行完一个请求后就会空闲,这样就算有并发请求突然访问某一个接口也调度得过来;

实例测试验证:
我们在被调用的方法里面打印线程的名字;这样就可以判读啊出每次线程都是哪些来处理的;
在这里插入图片描述

  • 执行结果如下
  • 在这里插入图片描述

可以使用压测工具对某接口发起并发请求;查看处理结果;工具地址
http://coolaf.com/zh/tool/testing
在这里插入图片描述
可以看到五十个并发请求很快就执行成功了
看看日志输出:
在这里插入图片描述

Tomcat默认最大活跃线程为200个,也就是说支持最高二百并发,但实际上比这要少一点;毕竟内部线程占用
在这里插入图片描述
可以看到失败个数只有10个,所以终于知道选课系统为什么这么慢了吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值