Executor
<Executor>标签指的是可以被共享的线程池,不仅仅可以被Connector共享,所有的支持Executor属性的组件都可以共享这个线程池。在server.xml配置文件中,为了能够保证Connector获取到指定的Executor,需要将线程池标签放在Connector标签之前。
属性:
通用属性:
className:
默认的className值为org.apache.catalina.core.StandardThreadExecutor,指定了Executor的执行接口,这个接口保证我们可以通过class属性来找到对应的线程池,并且正确的执行线程池的LifeCycle.注意需要慎重修改!
name:
用来区分不同线程池的属性,这个属性必须是独一无二的,这样才能保证我们指定到特定的线程池。
标准执行属性(Standard Implementation):
threadPriority:
(int)线程池的优先级,默认是5,即Thread.NORM_PRIORITY常数的值
daemon:
(boolean)守护线程,默认为true,关于守护线程的含义,请参照JAVA中关于其更进一步的解析。
namePrefix:
(String)线程名称的前缀,对于每一个由Executor创建的线程来说,它的名字是前缀+线程编号(namePrefix+threadNumber)
maxIdleTime:
(int)空闲线程的最大存在时常,当线程数大于最小空闲线程数时,会逐渐将空闲的线程关闭。默认值为60000(1分钟)
maxQueueSize:
最大的队列长度,当线程池满的时候,会将接下来的请求安排进等待队列,超过队列长度的请求会被拒绝。默认是Integer.MAX_VALUE的常数
prestartminSpareThreads:
(boolean)当服务器启动时,是否要创建出最小空闲线程数量的线程,默认值为false.
threadRenewalDelay:
(long)当我们配置了ThreadLocalLeakPreventionListener的时候,它会监听一个请求是否停止,停止的话,会更新线程池里的线程,这个值设定的是两个线程被更新时之间的延迟,默认为1000ms,设定为负值表示不更新。
以上便是Tomcat8.0.33官方文档中提及的所有<Executor>的可操作属性,只是在个人理解的基础上进行了翻译和总结,如果有理解不对的地方,希望各位大神多多指教!