面试java线程池的拒绝策略
Java线程池在提交任务时,如果线程池中的工作线程已经满了,那么就必须有一种机制来处理这种情况,这个机制就是所谓的拒绝策略。Java线程池提供了四种默认的拒绝策略,分别是:
1. AbortPolicy(默认):
该策略会直接抛出RejectedExecutionException异常,阻止系统正常运行。
2. CallerRunsPolicy:
该策略表示无法执行的任务将被直接放回到提交任务的线程中运行,即由提交任务的线程自己执行被拒绝的任务。
3. DiscardPolicy:
该策略表示无法执行的任务会被直接丢弃,不会有任何处理。
java线程池创建的四种4. DiscardOldestPolicy:
该策略表示无法执行的任务会与当前线程池中最早的任务进行竞争,如果竞争成功,最早的任务将被删除并执行当前任务,否则当前任务也将被丢弃。
在实际开发中也可以根据具体情况自定义拒绝策略。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论