线程池的执行流程和拒绝策略有哪些?
时间: 2023-12-05 17:13:03 浏览: 78
Java线程池的拒绝策略实现详解
5星 · 资源好评率100%
线程池的执行流程一般分为以下步骤:
1. 任务提交,将任务加入线程池的任务队列中。
2. 线程池中的线程从任务队列中取出任务。
3. 线程执行任务。
4. 执行完任务后,线程从任务队列中取出下一个任务继续执行,直到线程池关闭。
拒绝策略指的是当任务队列已满时,新提交的任务如何处理。常见的拒绝策略有以下几种:
1. AbortPolicy:直接抛出异常,丢弃任务。
2. CallerRunsPolicy:由提交任务的线程执行该任务。
3. DiscardOldestPolicy:丢弃队列中最老的一个任务,并尝试重新提交新的任务。
4. DiscardPolicy:直接丢弃新的任务。
5. 自定义拒绝策略:可以自己实现 RejectedExecutionHandler 接口来定义拒绝策略。
阅读全文