線程池都有哪些核心配置參數?


corePoolSize

表示常駐核心線程數量。

maximumPoolSize

表示線程池中能同時執行的最大線程數量。這個值必須大於等於corePoolSize,如果這兩個值相等,那就是固定大小的線程池

keepAliveTime

表示線程池中除常駐核心線程之外的其他線程的空閑時間,如果超過這個時間就會銷毀。

queue

緩存隊列,當請求的線程數大於corePoolSize的時候,線程會進入隊列進行阻塞。當這個隊列達到上限之后,線程池會創建新的線程,直到到嗎maximumPoolSize大小位置。

RejectedExecutionHandler

表示拒絕策略。當queue滿了之后,並行活動的線程數大於maximunPoolSize的時候,線程池通過改策略處理請求。

其中RejectedExcutionHandler默認包含四種策略:

AbortPolicy(默認) 丟棄這個任務並拋出 RejectedExecutionException異常
DiscardPolicy 丟棄掉這個任務,但是不拋出異常
DiscardOldestPolicy 拋棄掉在隊列中等待最久的任務,然后把當前任務加入隊列中
CallerRunsPolicy 調用任務的run()方法繞過線程池直接執行

另外還支持自定義模式。

public class UserRejectedHandler implements RejectedExecutionHandler {
    @Override
    public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
        System.out.println("處理邏輯");
    }
}

threadFactory

表示線程工廠。他用來生產一組相同任務的線程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM