线程池的拒绝策略实战
时间: 2023-11-14 08:07:53 浏览: 83
Java线程池实战PDF下载 .pdf
线程池的拒绝策略是指当线程池中的线程已经全部被占用,且队列中的任务已经达到上限时,新的任务该如何处理。常见的拒绝策略有以下几种:
1. AbortPolicy:直接抛出异常,阻止系统正常工作。
2. CallerRunsPolicy:只用调用者所在的线程来执行任务。
3. DiscardOldestPolicy:丢弃队列中最老的一个任务,并执行当前任务。
4. DiscardPolicy:不处理,直接丢弃任务。
在实际应用中,我们可以根据业务需求选择合适的拒绝策略。例如,如果我们的系统对任务的实时性要求比较高,那么可以选择 CallerRunsPolicy 策略,让调用者所在的线程来执行任务,保证任务能够及时得到处理;如果我们的系统对任务的完整性要求比较高,那么可以选择 DiscardOldestPolicy 策略,保证队列中最老的任务能够得到处理。
阅读全文