連線池,執行緒池 概念
資料庫連線池 引數介紹:
name:表示你的連線池的名稱也就是你要訪問連線池的地址
auth:是連線池管理權屬性,Container表示容器管理
type:是物件的型別
driverClassName:是資料庫驅動的名稱
url:是資料庫的地址
username:是登陸資料庫的使用者名稱
password:是登陸資料庫的密碼
maxIdle,最大空閒數,資料庫連線的最大空閒時間。超過空閒時間,資料庫連線將被標記為不可用,
然後被釋放。設為0表示無限制。
MaxActive,連線池的最大資料庫連線數。設為0表示無限制。
maxWait ,最大建立連線等待時間。如果超過此時間將接到異常。設為-1表示無限制。
*maxActive:最大連線資料庫連線數,設 0 為沒有限制
*maxIdle:最大等待連線中的數量,設 0 為沒有限制
*maxWait:最大等待毫秒數, 單位為 ms, 超過時間會出錯誤資訊
執行緒池
ThreadPoolExecutor 重要引數
corePoolSize:核心執行緒數
核心執行緒會一直存活,即使沒有任務需要執行
當執行緒數小於核心執行緒數時,即使有執行緒空閒,執行緒池也會優先建立新執行緒處理
設定allowCoreThreadTimeout=true(預設false)時,核心執行緒會超時關閉
queueCapacity:任務佇列容量(阻塞佇列)
當核心執行緒數達到最大時,新任務會放在佇列中排隊等待執行
maxPoolSize:最大執行緒數
當執行緒數>=corePoolSize,且任務佇列已滿時。執行緒池會建立新執行緒來處理任務
當執行緒數=maxPoolSize,且任務佇列已滿時,執行緒池會拒絕處理任務而丟擲異常
ThreadPoolExecutor執行順序:
1.當執行緒數小於核心執行緒數時,建立執行緒。
2.當執行緒數大於等於核心執行緒數,且任務佇列未滿時,將任務放入任務佇列。
3.當執行緒數大於等於核心執行緒數,且任務佇列已滿
3.1若執行緒數小於最大執行緒數,建立執行緒
3.2若執行緒數等於最大執行緒數,丟擲異常,拒絕任務