Tomcat 线程池配置

线程池

  Executor代表了一个线程池,可以在Tomcat组件之间共享。使用线程池的好处在于减少了创建销毁线程的相关消耗,而且可以提高线程的使用效率。要想使用线程池,首先需要在 Service标签中配置。

<Service name="Catalina">  
  
  <Executor name="tomcatThreadPool"   
         namePrefix="catalina-exec-"   
         maxThreads="1000"   
         minSpareThreads="100"  
         maxIdleTime="60000"  
         maxQueueSize="Integer.MAX_VALUE"  
         prestartminSpareThreads="false"  
         threadPriority="5"  
         className="org.apache.catalina.core.StandardThreadExecutor"/>  
  ...
# 在Connector中指定线程池
   <Connector executor="tomcatThreadPool"  

参数详解

name
注:线程池名称,用于 Connector中指定。

namePrefix
注:所创建的每个线程的名称前缀,一个单独的线程名称为 namePrefix+threadNumber。

maxThreads
注:池中最大线程数。

minSpareThreads
注:活跃线程数,也就是核心池线程数,这些线程不会被销毁,会一直存在。

maxIdleTime
注:线程空闲时间,超过该时间后,空闲线程会被销毁,默认值为6000(1分钟),单位毫秒。

maxQueueSize
注:在被执行前最大线程排队数目,默认为Int的最大值,也就是广义的无限。除非特殊情况,这个值不需要更改,否则会有请求不会被处理的情况发生。

prestartminSpareThreads
注:启动线程池时是否启动 minSpareThreads部分线程。默认值为false,即不启动。

threadPriority
注:线程池中线程优先级,默认值为5,值从1到10。

className
注:线程池实现类,未指定情况下,默认实现类为org.apache.catalina.core.StandardThreadExecutor。如果想使用自定义线程池首先需要实现 org.apache.catalina.Executor接口。

猜你喜欢

转载自www.cnblogs.com/xiangsikai/p/9156725.html
今日推荐