所有分类
  • 所有分类
  • 未分类

Java线程池-饱和策略(拒绝策略)的使用(有实例)

简介

本文用示例介绍Java线程池的饱和策略(拒绝策略)。

概述

Java线程池的饱和策略如下:

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

实例

此内容仅限VIP查看,请先
0

评论1

请先

  1. 抛出RejectedExecutionException异常并不会影响线程池和其中的线程,已提交且正在执行的任务和在工作队列中等待的任务会继续执行,线程池也不会关闭,所以JVM就不会退出
    150003 2024-04-23 0
显示验证码
没有账号?注册  忘记密码?

社交账号快速登录