当前位置: 首页 > news >正文

兰州网站建设与优化推广品牌建设总结报告

兰州网站建设与优化推广,品牌建设总结报告,广州seo网站推广公司,六安网站定制1. 一个 SpringBoot 项目能同时处理多少请求?tomcat容器, 200 次。 2. 怎么来的? 而点击这些线程,查看其堆栈消息,可以看到 Tomcat、threads、ThreadPoolExecutor 等关键字 基于“短时间内有 200 个请求被立马处理…

1. 一个 SpringBoot 项目能同时处理多少请求?tomcat容器,

200 次。

2. 怎么来的?

而点击这些线程,查看其堆栈消息,可以看到 Tomcat、threads、ThreadPoolExecutor 等关键字
在这里插入图片描述
基于“短时间内有 200 个请求被立马处理的”这个现象,结合你背的滚瓜烂熟的、非常扎实的线程池知识,你先大胆的猜一个:Tomcat 默认核心线程数是 200。

从这个调用栈中,由于我们要找的是 Tomcat 线程池相关的源码,所以第一次出现相关关键字的地方就是这一行:

org.apache.Tomcat.util.threads.ThreadPoolExecutor.Worker#run

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
corePoolSize,核心线程数,值为 10。

maximumPoolSize,最大线程数,值为 200。

而且基于 maximumPoolSize 这个参数,你往前翻代码,会发现这个默认值就是 200:
队列长度,值为 Integer.MAX_VALUE。

在这里插入图片描述
在这里插入图片描述
这个方法里面,标号为 ① 的地方,就是判断当前工作线程数是否小于核心线程数,小于则直接调用 addWorker 方法,创建线程。

标号为 ② 的地方主要是调用了 offer 方法,看看队列里面是否还能继续添加任务。

如果不能继续添加,说明队列满了,则来到标号为 ③ 的地方,看看是否能执行 addWorker 方法,创建非核心线程,即启用最大线程数。

把这个逻辑捋顺之后,接下来我们应该去看哪部分的代码,就很清晰了。

主要就是去看 workQueue.offer(command) 这个逻辑。

如果返回 true 则表示加入到队列,返回 false 则表示启用最大线程数嘛。

这个 workQueue 是 TaskQueue,看起来一点也不眼熟:
在这里插入图片描述
当然不眼熟了,因为这个是 Tomcat 自己基于 LinkedBlockingQueue 搞的一个队列。

在这里插入图片描述

重点:题的答案就藏在 TaskQueue 的 offer 方法里面。

在这里插入图片描述
parent 就是 Tomcat 线程池,通过其 set 方法可以知道,是在线程池完成初始化之后,进行了赋值。

也就是说,你可以理解为,在 Tomcat 的场景下,parent 不会为空。

标号为 ② 的地方,调用了 getPoolSizeNoLock 方法:
就表明当前线程池的线程数已经是配置的最大线程数了,那就调用 offer 方法,把当前请求放到到队列里面去。

标号为 ③ 的地方,是判断已经提交到线程池里面待执行或者正在执行的任务个数,是否比当前线程池的线程数还少。

如果是,则说明当前线程池有空闲线程可以执行任务,则把任务放到队列里面去,就会被空闲线程给取走执行。

然后,关键的来了,标号为 ④ 的地方。

重点:如果当前线程池的线程数比线程池配置的最大线程数还少,则返回 false。

前面说了,offer 方法返回 false,会出现什么情况?
在这里插入图片描述
是不是直接开始到上图中标号为 ③ 的地方,去尝试添加非核心线程了?

也就是启用最大线程数这个配置了。

3. JDK线程池和Tomcat线程池原理不一样

JDK 的线程池,是先使用核心线程数配置,接着使用队列长度,最后再使用最大线程配置。
Tomcat 的线程池,就是先使用核心线程数配置,再使用最大线程配置,最后才使用队列长度。

https://mp.weixin.qq.com/s/PXC4pFE_ZpydBAzCJZmiqQ

http://www.yayakq.cn/news/902412/

相关文章:

  • 怎样优化网站案例财务软件免费版
  • 一级a做爰片免费网站孕交视频教程深圳视频seo
  • 潍坊网站建设推广报价佛山 建站公司
  • 服饰类网站模板四川企业高端网站建设
  • 制作网站教程网站优化软件开发
  • 网站搜索引擎优化方案的案例重庆中企动力科技股份有限公司怎么样
  • 深圳市设计网站如何建立一个网站平台网站
  • 新公司 做网站 流程建网站手机版
  • 推广 电子商务网站建设免费的进销存管理系统
  • 弹出全屏视频网站怎么做国外有什么网站是做服装的
  • 青海网站设计企业品牌视觉识别系统案例
  • 南京网站建设 雷仁网络嘉兴做网站的公司
  • 淮安市建设银行网站首页免费咨询服务合同范本
  • 搭建好ftp服务器 如何通过网站访问免费制作自己的网站
  • 北京网站建设团队php能自己做网站吗
  • 抖音直播间挂人气自助网站做一个小程序需要多少钱
  • 网站美食建设图片素材如何对网站做进一步优化
  • 如何进入网站后台 被黑合肥网页制作
  • 网站建设项目预算表上海做网站要多少钱
  • 网页设计作业网站泰州网页网站制作
  • 尉氏做网站中国工信部官网查询网站备案
  • 创新的做网站网页设计html代码教程
  • 网站后台打开很慢泉州网站建设哪家好
  • 遵义网站建设txwl企业进行网站建设的方式
  • 网站建设动态代码关于网站建设的合同范本
  • 做企业网站都有什么平台计算机做网站开题报告
  • 网站创造国外开源商城系统
  • 上海人才网招聘网官方网深圳专业seo
  • 深圳网络推广建站为什么要懂seo
  • 品牌网站建设工作室中山 网站定制