用一般配置下tomcat 9執行緒情況進行分析
main thread:一般是唯一非daemon執行緒,await
containerbackgroundprocessor:一般只有engine有此執行緒
connector一般將協議相關功能委託給自己的protocolhandler, protocolhandler然後將連線相關委託給內部endpoint
connector根據protocol屬性決定protocolhandler的classname,如(http/1.1 ajp/1.3 或者直接指定classname,同時考慮是否使用了apr)
endpoint的start方法一般會啟動多個執行緒,如下面所有執行緒,注意asynctimeout在tomcat9提到protocolhandler處了
nioblockingselector.blockpoller-(1,2) :兩個connector,每個的endpoint都有nioselectorpool-nioblockingselector-blockpoller
http-nio-8080-exec-(1到10):處理執行緒池:一般core 10,max 200,當然也可以使用service內定義的executor(可定義多個,按名稱取),將其設定入protocolhandler進而設定入endpoint
http-nio-8080-clientpoller-(0到1)
http-nio-8080-acceptor-(0):接收執行緒,connector一般提供配置執行緒個數(connector有乙個setproperty方法,其實現為將屬性設定到protocolhandler內,protocolhandler的setter方法委託到內部endpoint上)
http-nio-8080-asynctimeout:tomcat9 移到了protocolhandler的start方法開啟
同時ajp-nio-8009也有一套同樣執行緒(一般我們有兩個connector)
tomcat 結構分析
掌握 tomcat是web伺服器的一種,乙個tomcat就是乙個server服務,裡面可以有多個service服務,每個service服務主要由connector與container組成,同乙個service可以有多個不同種類的connector 乙個服務可以有多種連線,如同時提供http和http...
多執行緒(一) tomcat 多執行緒
web server允許的最大執行緒連線數還受制於作業系統的核心引數設定,通常windows是2000個左右,linux是1000個左右。1.編輯tomcat安裝目錄下的conf目錄下的server.xml檔案 maxthreads 150 表示最多同時處理150個連線,tomcat使用執行緒來處理...
Tomcat執行緒池配置
使用執行緒池,用較少的執行緒處理較多的訪問,可以提高tomcat處理請求的能力。使用方式 首先,開啟 conf server.xml,增加 最大執行緒500 一般伺服器足以 最小空閒執行緒數20,執行緒最大空閒時間60秒。然後,修改節點,增加executor屬性,如 maxthreads 600 m...