線程池apache
Executor表明了一個線程池,能夠在Tomcat組件之間共享。使用線程池的好處在於減小了建立銷燬線程的相關消耗,並且能夠提升線程的使用效率。要想使用線程池,首先須要在 Service標籤中配置。tomcat
<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"
參數詳解spa
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接口。