建立Java自定義執行緒池的構造方法很多,但是我們在使用中就會有以下幾個最主要的程式碼應用。我們在使用的時候就要先來了解下有關Java自定義執行緒池的原始碼。本例中引數的含義如下:
Java程式碼
adPoolExecutor
ic ThreadPoolExecutor(int corePoolSize,
maximumPoolSize,
keepAliveTime,
Unit unit,
kingQueue workQueue)
用給定的初始引數和預設的執行緒工廠及處理程式建立新的 ThreadPoolExecutor。使用 Executors 工廠方法之一比使用此通用構造方法方便得多。
引數:
PoolSize - 池中所儲存的執行緒數,包括空閒執行緒。
mumPoolSize - 池中允許的最大執行緒數。
AliveTime - 當執行緒數大於核心時,此為終止前多餘的空閒執行緒
等待新任務的最長時間。
- keepAliveTime 引數的時間單位。
Queue - 執行前用於保持任務的佇列。此佇列僅保持由 execute
方法提交的 Runnable 任務。
丟擲:
IllegalArgumentException - 如果 corePoolSize 或 keepAliveTime 小於零,或者 maximumPoolSize 小於或等於零,或者 corePoolSize 大於 maximumPoolSize。
NullPointerException - 如果 workQueue 為 null
adPoolExecutor
ic ThreadPoolExecutor(int corePoolSize,
maximumPoolSize,
keepAliveTime,
Unit unit,
kingQueue workQueue)
用給定的初始引數和預設的執行緒工廠及處理程式建立新的 ThreadPoolExecutor。使用 Executors 工廠方法之一比使用此通用構造方法方便得多。
引數:
PoolSize - 池中所儲存的執行緒數,包括空閒執行緒。
mumPoolSize - 池中允許的最大執行緒數。
AliveTime - 當執行緒數大於核心時,此為終止前多餘的空閒
執行緒等待新任務的`最長時間。
- keepAliveTime 引數的時間單位。
Queue - 執行前用於保持任務的佇列。此佇列僅保持由 execute
方法提交的 Runnable 任務。
23.丟擲:
galArgumentException - 如果 corePoolSize 或
keepAliveTime 小於零,或者 maximumPoolSize 小於或等於零,
或者 corePoolSize 大於 maximumPoolSize。
PointerException - 如果 workQueue 為 null
Java自定義執行緒池稍微麻煩些,不過通過建立的ThreadPoolExecutor執行緒池物件,可以獲取到當前執行緒池的尺寸、正在執行任務的執行緒數、工作佇列等等。