核心構造方法:ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlokingQueueworkQueue){}
重要的參數:
1, corePoolSize:核心線程數
,2, maximumPoolSize:最大線程數
3, keepAliveTime , 存活時間
corePoolSize和 maximumPoolSize的區別:
keepAliveTime :當線程池中的線程數超過核心線程數和隊列總數,但是小於最大線程數的時候,threadPooLExecutor會請求“老闆”再派幾個工人來執行,那麼會有以下兩種情況:
1,任務不再過來了-keepAliveTime
2,任務仍然繼續過來
當處於1的情況下,既然是借的工人來執行操作,那麼什麼時候就可以還回去呢,就是keepAliveTime 設定的時間
當處於2的情況下,借來的工人還是忙不過來,那麼就只好拒絕接受了,即RejectedExecutionHandler
附一張簡單的線程池運行原理