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

哪里有零基础网站建设教学培训网盘网页版登录入口

哪里有零基础网站建设教学培训,网盘网页版登录入口,做私人网站,少女のトゲ在线观看tomcat两大组件:连接器Connector,容器Container tomcat线程池 Tomcat线程池扩展了ThreadPoolExecutor,行为稍有不同 重写了ThreadPoolExecutor的execute方法 如果总线程数达到maximumPoolSize,不会立刻抛RejectedExecutionExcept…

tomcat两大组件:连接器Connector,容器Container

tomcat线程池

在这里插入图片描述
Tomcat线程池扩展了ThreadPoolExecutor,行为稍有不同
重写了ThreadPoolExecutor的execute方法
如果总线程数达到maximumPoolSize,不会立刻抛RejectedExecutionException异常
而是再次尝试将任务放入队列,如果还失败,才抛出RejectedExecutionException异常

tomcat线程池相关的配置

Connector配置,对应server.xml中的Connector标签

acceptor线程数量(建立socket连接,这个线程很多时候在阻塞状态,没有新的连接就会等待,所以1个线程足够了)->acceptorThreadCount(default 1)
poller线程数量(采用了多路复用的思想,1个线程就能监测多个channel的读写事件)->pollerThreadCount(default 1)
Executor线程池中的核心线程数->minSpareThreads(default 10)
Executor线程池中的最大线程数->maxThreads(default 200)
Executor名称(引用Executor标签)->会覆盖掉minSpareThreads和maxThreads的值

Executor线程配置,对应server.xml中的Executor标签

线程优先级 -> threadPriority(default 5)
是否守护线程 -> daemon(default true)
核心线程数 -> minSpareThreads(default 25)
最大线程数 -> maxThreads(default 200)
非核心线程空闲生存时间 -> maxIdleTime(default 60000)1分钟
队列长度 -> maxQueueSize(default Integer.MAX_VALUE)
核心线程是否在服务器启动时启动 -> prestartminSpareThreads(default false)

核心类
org.apache.catalina.startup.Catalina#createStartDigester方法解析server.xml标签
Executor标签默认使用的这个StandardThreadExecutor:启动核心,方法startInternal,execute
但是SpringBoot中好像没用这个StandardThreadExecutor
tomcat中有一个同名的ThreadPoolExecutor继承了JDK的ThreadPoolExecutor

// TaskQueue是Tomcat中的任务队列
// org.apache.tomcat.util.threads.TaskQueue.java
// public class TaskQueue extends LinkedBlockingQueue<Runnable>// 线程池中的线程数 < 核心线程数时,会直接创建新线程执行该任务
// calling this method when 线程池中的线程数 >= 核心线程数
// TaskQueue重写了offer方法
public boolean offer(Runnable o) {if (this.parent == null) {return super.offer(o);// 线程池中的线程数 == 最大线程数} else if (this.parent.getPoolSize() == this.parent.getMaximumPoolSize()) {return super.offer(o);// 线程池中的线程数 >= 队列里的任务和已经在执行但是还没执行完的任务} else if (this.parent.getSubmittedCount() <= this.parent.getPoolSize()) {return super.offer(o);} else {// 线程池中的线程数 < 最大线程数(此时会返回false,导致execute方法中调用addWorker方法创建一个线程)return this.parent.getPoolSize() < this.parent.getMaximumPoolSize() ? false : super.offer(o);}
}

SpringBoot启动时,Tomcat启动的过程:从Spring的run方法开始,一些关键节点

TomcatWebServer.class:185
WebServerStartStopLifecycle.class:22
DefaultLifecycleProcessor.class:123
DefaultLifecycleProcessor.class:294
DefaultLifecycleProcessor.class:100
DefaultLifecycleProcessor.class:74
AbstractApplicationContext.class:527
AbstractApplicationContext.class:296
TomcatWebServer.class:167
TomcatWebServer.class:166
TomcatWebServer.class:83
TomcatWebServer.class:75
TomcatWebServer.class:60
TomcatServletWebServerFactory.class:409
TomcatServletWebServerFactory.class:145
TomcatServletWebServerFactory.class:127
ServletWebServerApplicationContext.class:102
ServletWebServerApplicationContext.class:81
AbstractApplicationContext.class:293
AbstractApplicationContext.class:279
SpringApplication.class:493
SpringApplication.class:268
SpringApplication.class:171
WeiXinApplication.java:13

在这里插入图片描述
tomcat的线程池机制
Tomcat线程池原理
Executor官方配置文档
tomcat-超详细的启动流程
SpringBoot启动流程之tomcat启动流程
SpringBoot中Tomcat是如何启动的

http://www.ds6.com.cn/news/73109.html

相关文章:

  • 绵阳哪个网站做外卖做的好百度热搜风云榜
  • 自己网站做虚拟币违法吗优化服务
  • 机械公司网站建设seo定义
  • 北京王府井集团股份有限公司百度点击优化
  • 固安做网站最新足球赛事
  • 网站 建设 业务需求表完美动力培训价格表
  • wordpress连接数据修改seo百度贴吧
  • 网站哪家做的比较好的百度推广客户端教程
  • 视频网站开发项目新东方烹饪学校
  • 滨江区高端网站建设深圳网站设计小程序
  • 百度网站建设公司室内设计培训
  • 网站除了域名还要什么用浙江seo技术培训
  • 网站的网页声明怎么做搜索引擎排名google
  • 怪兽网站模板网站seo的主要优化内容
  • dede网站版权信息标签合肥网络优化公司有几家
  • 怀化新站优化seo诊断分析工具
  • 一页网站首页图如何做seo自然优化排名技巧
  • 网站文件夹 安全设置seo是什么地方
  • 广州网站设计皆赞乐云践新花都网络推广seo公司
  • 西安动力无限网站建设怎样做一个网站平台
  • 省级精品课程网站如何在百度上发布自己的广告
  • 电子商务网站建设与维护北京百度竞价托管公司
  • 内部券网站怎么做制作网页完整步骤代码
  • 做阳具到哪个网站有卖品牌策划公司排名
  • 做网站怎么写工作日志怎么进行推广
  • php旅游网站开发小结英语培训机构前十名
  • HS酒店网站建设北京网络推广有哪些公司
  • 做微信封面的网站中国重大新闻
  • 驻马店企业做网站全网网络营销推广
  • 保定做网站百度推广百度竞价员