简介
本文用示例介绍Java线程池的饱和策略(拒绝策略)。
概述
Java线程池的饱和策略如下:
饱和策略 | 说明 |
ThreadPoolExecutor.AbortPolicy | 线程池默认的阻塞策略。 不执行此任务,而且抛出一个运行时异常(未检查的异常RejectedExecutionException)。 切记:ThreadPoolExecutor.execute需要try catch,否则程序会直接退出。 |
ThreadPoolExecutor.DiscardPolicy | 不执行此任务,而且不抛异常。(是个空方法) |
ThreadPoolExecutor.DiscardOldestPolicy | 从队列里删除最老的任务(头部的一个任务),并再次execute 此task。 |
ThreadPoolExecutor.CallerRunsPolicy | 让调用execute方法的线程执行此command,会阻塞入口。 这是个调节机制,既不抛弃任务也不抛出异常,而是将某些任务回退到调用者,让调用者所在的线程去执行。 |
用户自定义拒绝策略(最常用) | 实现RejectedExecutionHandler,并自己定义策略模式 |
实例
此内容仅限VIP查看,请先登录
请先
!