V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  haochih  ›  全部回复第 3 页 / 共 3 页
回复总数  45
1  2  3  
2017 年 3 月 1 日
回复了 esolve 创建的主题 问与答 tomcat 是不是来一个 http request 就生成一个线程去处理?
Tomcat 假如在未分布式情况,按照 Servlet 标准,未实现 SingleThreadModel 的 Servlet ,如果只声明一次的话,该 Servlet 在服务过程中只会有一个实例,当客户端有请求发起时, Servlet 容器会给每一个请求,从 Servlet 容器维护的线程池(具体线程个数参数配置)里面获取一个线程为其服务( BIO 模型下)。当有大量的请求发起时,线程池里面的线程可能会一下子被用完,这时候剩余请求就会被排在请求队列中(具体可以排多少个,参数配置),等有线程闲下来时继续服务排队请求,假如请求数量超过了最大的排队数,未排进队列的请求就会不予处理。

按照楼主说的, 10w 个 HTTP Request ,不会有 10w 个线程同时服务, Servlet 容器线程池配置了最多 1000 个线程,那么一瞬间这 1000 个线程将会服务于 1000 个请求,假如剩余 9000 个中 2000 个又排进了待处理队列,那么剩下的 7000 个将会不予处理,当然这是同一时间点 10w 个请求同时到达的情况。实际情况下, 10w 个请求到达时间应该有前有后,所以可能某些请求达到时,某些请求已经被迅速处理掉,线程闲下来可以继续处理了。

@SoloCompany 想请教一下上面这段在 BIO 模型下理解是否正确,谢谢。
想起来当年我用安卓机的时候,只要耳机一插入,喜马拉雅就自动唤醒了,真的是烦死了。
2016 年 11 月 10 日
回复了 aleen42 创建的主题 分享创造 这只 Mingtocat 有人赞不?
棒!
2016 年 8 月 4 日
回复了 ebony0319 创建的主题 问与答 马上就七夕了,又要送什么礼物?
@SourceMan 送香港或者日本的没准还可以加分。 /滑稽
1  2  3  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3595 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 04:36 · PVG 12:36 · LAX 20:36 · JFK 23:36
♥ Do have faith in what you're doing.