public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler) 複製程式碼
corePoolSize:核心執行緒數,如果執行的執行緒數小於corePoolSize,則建立新執行緒來執行新任務,即使執行緒池中的其他執行緒是空閒的。
maximumPoolSize:最大執行緒數,可允許建立的執行緒數,corePoolSize和maximumPoolSize設定的邊界自動調整執行緒池的大小。
corePoolSize<執行的執行緒數<maximumPoolSize:僅當佇列滿時才建立新執行緒。
corePoolSize=執行的執行緒數=maximumPoolSize:建立固定大小的執行緒池。
keepAliveTime:如果執行緒數多於corePoolSize,則這多於的執行緒的空閒時間超過keepAliveTime時將被終止
unit:keepAliveTime引數的時間單位
workQueue:儲存任務的阻塞佇列,與執行緒池的大小有關:
當執行的執行緒數少於corePoolSize時,在有新任務時直接建立新執行緒來執行任務而無需再進佇列
當執行的執行緒數等於或者多於corePoolSize,在有新任務新增時則加入佇列,不直接建立執行緒
當佇列滿時,再有新任務加入時則建立新執行緒。
threadFactory:使用threadFactory建立新執行緒,預設使用defaultThreadFactory建立新執行緒。
handler:定義處理唄拒絕任務的策略,預設使用ThreadPoolExecutor.AbortPolicy,任務唄拒絕時丟擲RejectExecutorException.