线程池常用的拒绝策略
线程池是在多线程中常常用到的一种技术,它可以通过对线程的管理,充分利用CPU资源,提高系统的效率。在使用线程池的过程中,各种异常情况都可能会出现,如超时、拒绝请求等,这时候就需要采用拒绝策略来解决,本文将介绍线程池常用的拒绝策略。
1. 直接抛出异常(DiscardPolicy)
这是线程池默认的拒绝策略,当线程池已经满了,并且队列也已满,新的任务将被直接抛弃,并且抛出RejectedExecutionException异常。
2. 丢弃最老的任务(DiscardOldestPolicy)
原料英语当线程池已经满了,并且队列也已满,新的任务将会丢弃队列中最先进入队列的任务,然后将新的任务添加到队列中。好句摘抄大全初中
已知道
胃出血怎么办3. 丢弃当前任务,重新提交(RunnerPolicy)
当线程池已经满了,并且队列也已满,新的任务将会丢弃当前任务,并重新提交新的任务。
4. 直接调用execute方法实现阻塞(BlockingPolicy)
玫瑰花功效
当线程池已经满了,并且队列也已满,新的任务将会阻塞一段时间,等待有空闲的线程执行任务。
了解的英语
5. 自定义拒绝策略(CallerRunsPolicy)
白云山旅游攻略
当线程池已经满了,并且队列也已满,新的任务将会被线程池直接创建一个新的线程来执行任务,不过这种方式容易造成线程过多,从而降低系统的效率。因此,建议采用此方式时谨慎使用。
总之,在实际项目中,往往需要根据具体情况选择相应的拒绝策略。采用合适的拒绝策略,可以保证系统的正常运行,提高系统的效率,减轻系统压力。