线程池针对请求处理的四种饱和策略
线程池的资源是有限的,当线程池没有可用的资源时,后面接收进来的任务请求如何处理,线程池有以下几种方式。
1、AbortPolicy
默认策略(中止策略)新任务提交时直接抛出未检查的异常RejectedExecutionException,该异常可由调用者捕获。
2、CallerRunsPolicy
为调节机制,既不抛弃任务也不抛出异常,而是将某些任务回退到调用者。不会在线程池的线程中执行新的任务,而是在调用exector的线程中运行新的任务。
3、DiscardPolicy
丢弃策略,丢弃队列尾部的任务请求,即丢弃最新进来的任务请求。
4、DiscardOldestPolicy
丢弃策略,丢弃队列头部的任务请求,即丢弃最老进来的任务请求。