本文重點講解當線程池的任務過多時,如何去拒絕這些任務。
拒絕條件
1.線程已經shutdown了,需要拒絕
2.最大線程數或者隊列已經滿了,需要拒絕
拒絕策略
1.abortPolicy: 直接拋出異常
2.discardPolicy:任務丟棄,收不到通知
3.discardOldestPolicy:丟棄最老的
4.callerRunsPolicy:調用者運行策略,讓提交任務的線程去運行。
備注:前三種會有任務丟失,第四種相當於是一種反饋策略。
本文重點講解當線程池的任務過多時,如何去拒絕這些任務。
1.線程已經shutdown了,需要拒絕
2.最大線程數或者隊列已經滿了,需要拒絕
1.abortPolicy: 直接拋出異常
2.discardPolicy:任務丟棄,收不到通知
3.discardOldestPolicy:丟棄最老的
4.callerRunsPolicy:調用者運行策略,讓提交任務的線程去運行。
備注:前三種會有任務丟失,第四種相當於是一種反饋策略。
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。