執行器 (執行緒池)
目錄
簡介
執行器代表一個執行緒池,可在 Tomcat 中的元件之間共用。以往每個連接器都會建立一個執行緒池,但這允許您共用一個執行緒池,主要是在連接器之間,但當其他元件配置為支援執行器時,也可以共用。
執行器必須實作 org.apache.catalina.Executor
介面。
執行器是 服務 元素的巢狀元素。而為了讓連接器選取執行器,執行器元素必須出現在 server.xml 中連接器元素之前。
屬性
共用屬性
所有 執行器實作都支援下列屬性
屬性 | 說明 |
---|---|
className |
實作的類別。實作必須實作 |
name |
在 server.xml 中其他地方用來參考此池的名稱。名稱是必需的,且必須是唯一的。 |
標準實作
此實作使用平台執行緒池來執行指派給執行器的任務。
要使用此實作,className
屬性必須為 org.apache.catalina.core.StandardThreadExecutor
。
標準實作支援下列屬性
屬性 | 說明 |
---|---|
threadPriority |
(int) 執行器中執行緒的執行緒優先順序,預設為 |
daemon |
(boolean) 執行緒是否應為守護執行緒,預設為 |
namePrefix |
(String) 執行器建立的每個執行緒的名稱字首。個別執行緒的執行緒名稱將會是 |
maxThreads |
(int) 此池中活動執行緒的最大數量,預設為 |
minSpareThreads |
(int) 永遠保持運作的執行緒(閒置和活動)的最小數量,預設為 |
maxIdleTime |
(int) 閒置執行緒關閉前的毫秒數,除非活動執行緒的數量小於或等於 minSpareThreads。預設值為 |
maxQueueSize |
(int) 可排隊等待執行的可執行任務的最大數量,在我們拒絕它們之前。預設值為 |
threadRenewalDelay |
(long) 如果已設定 ThreadLocalLeakPreventionListener,它會通知此執行器已停止的內容。在停止內容後,池中的執行緒會更新。為了避免同時更新所有執行緒,此選項會在任何 2 個執行緒更新之間設定延遲。此值以毫秒為單位,預設值為 |
虛擬執行緒實作
此實作使用新的虛擬執行緒來執行指派給執行器的每個任務。此執行器需要 Java 21 的最低 Java 版本。
要使用此實作,className
屬性必須為 org.apache.catalina.core.StandardVirtualThreadExecutor
。
虛擬執行緒實作支援下列屬性
屬性 | 說明 |
---|---|
namePrefix |
(String) 執行器建立的每個執行緒的名稱字首。個別執行緒的執行緒名稱將會是 |