天天看點

Java線程池的四種拒絕政策

前言

當線程池的任務隊列滿了之後,線程池會執行指定的拒絕政策來應對,常用的四種拒絕政策包括:CallerRunsPolicy、AbortPolicy、DiscardPolicy、DiscardOldestPolicy,此外,還可以通過實作RejectedExecutionHandler接口來自定義拒絕政策。

四種預置的拒絕政策:

1、CallerRunsPolicy

使用線程池的調用者所在的線程去執行被拒絕的任務,除非線程池被停止或者線程池的任務隊列已有空缺。

2、AbortPolicy

直接抛出一個任務被線程池拒絕的異常。

3、DiscardPolicy

不做任何處理,靜默拒絕送出的任務。

4、DiscardOldestPolicy