一、七大核心參數
1.corePoolSize 核心線程數
2.maximumPoolSize 最大線程池參數
3.keepAliveTime 任務結束后,線程存活此處指定時間后才會被釋放
4.TimeUnit 上一個參數的單位,常用s,ms
5.BlockingQueue 隊列,當核心線程用完時,任務放進隊列
6.ThreadFactory 線程工廠
7.丟棄策略 默認Abort,直接丟棄,並拋出異常
二、線程池原理
所有線程池,剛創建時,都只包含0個線程。
當為線程指定任務時,如果同時指定多個任務,線程池會創建corePoolSize個線程執行任務,
剩下的任務會放入BlockingQueue中緩存,
如果隊列滿了,裝不下(有界隊列),如果繼續往線程池中部署任務,那么會創建新的線程執行任務,但是總線程數不會超過maximumPoolSize個,
當任務執行完畢,經過keepAliveTime(TimeUnit 指定時間單位)后,會釋放線程,讓線程池中保持corePoolSize個線程。