Java線程池的拒絕策略是指當線程池已滿并且無法再接受新的任務時,采取的處理方式。當線程池無法處理新的任務時,通常會有以下幾種拒絕策略可供選擇:
- AbortPolicy(默認策略):直接拋出RejectedExecutionException異常,阻止系統正常運行。
- CallerRunsPolicy:由調用線程處理該任務。即當線程池無法接受任務時,任務交給調用該線程池的線程來執行。
- DiscardPolicy:默默地丟棄無法處理的任務,不給予任何處理。
- DiscardOldestPolicy:丟棄最舊的未處理請求(即最先加入隊列的任務),然后嘗試重新提交新的任務。
- 自定義拒絕策略:用戶可以根據自己的需求實現RejectedExecutionHandler接口,并自定義拒絕策略。
用戶可以通過ThreadPoolExecutor類的構造方法或setRejectedExecutionHandler()方法來指定線程池的拒絕策略。