网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月10日漏签0天
程序员吧 关注:279,708贴子:1,389,459
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 2回复贴,共1页
<<返回程序员吧
>0< 加载中...

请问一下关于Tomcat并发处理请求的问题

  • 只看楼主
  • 收藏

  • 回复
  • bomagic1009
  • 初涉编程
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
今天看资源预估的网课, 老师说
假如处理一个请求需要100ms, 一个tomcat设置500个线程, 所以一个线程一秒钟可以处理10个请求,
也就是 一个Tomcat一秒钟可以处理 10*500 = 5000个请求
我的疑问是 假如服务器cpu 是12核24线程数, 为啥 Tomcat 500个线程能同时运行, 不是最多只能24线程处理请求, 而且没有算上cpu核心切换线程的时间, 所以我搞不懂哪些上千万并发是怎么弄的, 我理解的电脑核心和线程数差太远了
搞不懂CPU核心线程和 Tomcat等线程并发处理的关系,
请教大佬指点一下


  • 洛心书
  • 初涉编程
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你的问题很好,涉及到计算机的并发处理和多任务处理的基本概念。我会尽量简明扼要地解答
1. CPU核心与线程:
- CPU的核心数代表了它可以同时处理的任务数量。一个4核的CPU可以同时处理4个任务。
- 现代的多核CPU通常支持超线程技术,这意味着每个核心可以处理2个线程。例如,一个4核心8线程的CPU实际上有4个物理核心,但它可以处理8个并发线程。
2. 操作系统线程与CPU线程:
- 当我们说一个程序或系统有数百或数千个线程时,我们通常指的是操作系统级别的线程,而不是CPU线程。
- 操作系统使用称为“线程调度”的技术,它会在所有可用的CPU线程之间切换操作系统线程。因此,即使你的CPU只有24个线程,你的系统仍然可以运行500个或更多的线程。但是,这些线程不会同时在CPU上运行。操作系统会根据优先级和其他因素来切换这些线程。
3. Tomcat和其他服务器线程:
- 当Tomcat配置为使用500个线程时,这意味着它可以同时处理500个请求。但这并不意味着所有这些请求都会立即在CPU上执行。这些请求会被分配到CPU的线程上,并由操作系统调度来处理。
4.为什么大并发是可能的:
- 首先,并不是所有请求都会占用CPU的整个周期。许多请求可能会等待I/O操作(如读取数据库或文件),在此期间,CPU可以处理其他任务。
- 其次,现代系统通常使用负载均衡器,将请求分发到多个服务器或实例上,从而实现高并发。
5. 线程切换的成本:
- 确实,线程切换有一定的开销,但操作系统和现代CPU都进行了优化,以使这些开销尽可能小。
总之,尽管物理CPU的线程数量有限,但通过操作系统的线程调度,以及I/O等待时间,使得高并发成为可能。希望这可以帮助你理解这个概念


2026-02-10 05:59:02
广告
不感兴趣
开通SVIP免广告
  • acchallenger
  • 面向过程
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你基础不扎实,建议看书,推荐去看些操作系统相关书籍。
简单来说:即使是单核cpu也可以有好几百个线程,因为cpu会分配时间段来执行,比如第一个10ms执行a线程,下一个10ms执行b线程,由于cpu执行速度很快,感觉上就跟同时在执行多个任务一样


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回程序员吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示