1. 程式人生 > >連線池,執行緒池 概念

連線池,執行緒池 概念

資料庫連線池    引數介紹:
    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若執行緒數等於最大執行緒數,丟擲異常,拒絕任務