赞
踩
tomcat主要有两个核心的功能:
1.处理socket连接,字节流的request responese转换
2.加载管理servlet
所以 tomcat设计了两个组件:
connector和container
容器在xml中是这样呈现的
我们纵向观察一下启动流程
默认的tomcat配置主要有:
server.tomcat.accept-count:等待队列长度,默认100
server.tomcat.max-connections:最大可被连接数 默认10000
server.tomcat.max-threads:最大工作线程数 默认200
server.tomcat.min-threads:最小工作线程数 默认10
maxThreads、minSpareThreads是tomcat工作线程池的配置参数。
maxThreads就相当于jdk线程池的maxPoolSize,而minSpareThreads就相当于jdk线程池的corePoolSize。
tomcat连接器(connector)处理socket相关请求后会放入到线程池中。
tomcat扩展了java原生的线程池。TreadpoolExecutor
回顾一下ThreadpoolExecutor:
public ThreadPoolExecutor(int corePoolSize, //核心线程数
int maximumPoolSize, //最大线程数
long keepAliveTime, //存活时间
TimeUnit unit, //存活时间单位
BlockingQueue<Runnable> workQueue, //阻塞队列
ThreadFactory threadFactory, //扩展原生的线程工厂,比如给创建出来的线程取个有意义的名字
RejectedExecutionHandler handler)//拒绝策略
每次创建任务,没有达到corePoolSize,线程就创建新线程。达到了核心线程数,新建的线程就会放入到workqueue队列中。线程池中的线程通过poll来努力的从队列中拉活干。
如果线程创建的过多,如果w
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。