連線池,執行緒池 概念

2021-08-30 02:29:34 字數 1364 閱讀 2054

資料庫連線池    引數介紹:

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連線池和執行緒池區別 執行緒池和連線池的區別

一 執行緒池的原理 執行緒池,究竟是怎麼一回事?其實執行緒池的原理很簡單,類似於作業系統中的緩衝區的概念,它的流程如下 先啟動若干數量的執行緒,並讓這些執行緒都處於睡眠狀態,當客戶端有乙個新請求時,就會喚醒執行緒池中的某乙個睡眠執行緒,讓它來處理客戶端的這個請求,當處理完這個請求後,執行緒又處於睡眠...