資料庫連線池 引數介紹:
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若執行緒數等於最大執行緒數,丟擲異常,拒絕任務
4種拒絕策略
threadpoolexecutor.abortpolicy:丟棄任務並丟擲rejectedexecutionexception異常。
threadpoolexecutor.discardpolicy:也是丟棄任務,但是不丟擲異常。
threadpoolexecutor.discardoldestpolicy:丟棄佇列最前面的任務,然後重新嘗試執行任務(重複此過程)
threadpoolexecutor.callerrunspolicy:由呼叫執行緒處理該任務
mysql連線池的概念 連線池概念
1 連線池是乙個程序 多個連線是在乙個程序裡面儲存 管理的。這個程序儲存所有的連線,當我們開啟連線,如果有未用連線可用,則返回該連線。如果池中的連線都用完了,則建立乙個新的連線儲存到連線池。而但我們關閉連線的時候,連線池裡面並不關閉連線,而是返回連線池中並標記為可重用的狀態,等待重新連線直到等待超時...
執行緒池和連線池
執行緒池的原理 來看一下執行緒池究竟是怎麼一回事?其實執行緒池的原理很簡單,類似於作業系統中的緩衝區的概念,它的流程如下 先啟動若干數量的執行緒,並讓這些執行緒都處於睡眠狀態,當客戶端有乙個新請求時,就會喚醒執行緒池中的某乙個睡眠執行緒,讓它來處理客戶端的這個請求,當處理完這個請求後,執行緒又處於睡...
mysql連線池和執行緒池區別 執行緒池和連線池的區別
一 執行緒池的原理 執行緒池,究竟是怎麼一回事?其實執行緒池的原理很簡單,類似於作業系統中的緩衝區的概念,它的流程如下 先啟動若干數量的執行緒,並讓這些執行緒都處於睡眠狀態,當客戶端有乙個新請求時,就會喚醒執行緒池中的某乙個睡眠執行緒,讓它來處理客戶端的這個請求,當處理完這個請求後,執行緒又處於睡眠...