Java線程池的拒絕策略有以下幾種:
ThreadPoolExecutor.AbortPolicy:默認的拒絕策略,當任務添加到線程池失敗時,會拋出RejectedExecutionException異常。
ThreadPoolExecutor.CallerRunsPolicy:當任務添加到線程池失敗時,會將任務返回給調用者執行。這樣一來,線程池的處理能力就會降低,因為調用者需要等待任務執行完畢才能繼續執行。
ThreadPoolExecutor.DiscardPolicy:當任務添加到線程池失敗時,會直接丟棄該任務,不會拋出任何異常。
ThreadPoolExecutor.DiscardOldestPolicy:當任務添加到線程池失敗時,會先嘗試將最早進入線程隊列的任務刪除,然后重新嘗試添加任務。
可以通過調用ThreadPoolExecutor的setRejectedExecutionHandler方法來設置線程池的拒絕策略。