Java线程池中的四种拒绝策略()-java
Java线程池中的四种拒绝策略()
- CallerRunsPolicy:这是默认的拒绝策略,当线程池队列已满并且无法处理新任务时,将由提交任务的线程来执行该任务。这种策略可以降低新任务的流量,但也会增加提交任务的线程的负载。
- AbortPolicy:当线程池队列已满并且无法处理新任务时,将抛出RejectedExecutionException异常,阻止新任务的提交。
- DiscardPolicy:当线程池队列已满并且无法处理新任务时,将默默地丢弃该任务,不会给出任何提示或警告。
- DiscardOldestPolicy:当线程池队列已满并且无法处理新任务时,将丢弃队列中最早的未处理任务,并尝试重新提交新任务。这种策略可以保证不会丢失任何任务,但可能会影响到队列中已经等待很长时间的任务。
————————
- CallerRunsPolicy:这是默认的拒绝策略,当线程池队列已满并且无法处理新任务时,将由提交任务的线程来执行该任务。这种策略可以降低新任务的流量,但也会增加提交任务的线程的负载。
- AbortPolicy:当线程池队列已满并且无法处理新任务时,将抛出RejectedExecutionException异常,阻止新任务的提交。
- DiscardPolicy:当线程池队列已满并且无法处理新任务时,将默默地丢弃该任务,不会给出任何提示或警告。
- DiscardOldestPolicy:当线程池队列已满并且无法处理新任务时,将丢弃队列中最早的未处理任务,并尝试重新提交新任务。这种策略可以保证不会丢失任何任务,但可能会影响到队列中已经等待很长时间的任务。