- 一直都很好奇同时有多个请求调用我后台接口时是什么样的情况,今天在互联网上搜索了很久终于有了答案;
我们的应用是由Tomcat进行管理的,tomcat才接受到请求时需要调用接口方法处理请求,那么一个请求肯定就对应了一个线程,但是并不是每个请求都会创建一个线程来处理它,因为线程创建与销毁很浪费资源,所以Tomcat维护了一个线程池,线程执行完一个请求后就会空闲,这样就算有并发请求突然访问某一个接口也调度得过来;
实例测试验证:
我们在被调用的方法里面打印线程的名字;这样就可以判读啊出每次线程都是哪些来处理的;
- 执行结果如下
可以使用压测工具对某接口发起并发请求;查看处理结果;工具地址
http://coolaf.com/zh/tool/testing
可以看到五十个并发请求很快就执行成功了
看看日志输出:
Tomcat默认最大活跃线程为200个,也就是说支持最高二百并发,但实际上比这要少一点;毕竟内部线程占用
可以看到失败个数只有10个,所以终于知道选课系统为什么这么慢了吧