解决:java.util.concurrent.RejectedExecutionException

news2024/9/21 2:49:59

 一 发现RejectedExecutionException错误     

      今天查看服务器的时候发现了一些java.util.concurrent.RejectedExecutionException错误,这个是由于线程池里的线程忙不过来报出的。如下图:

像这种 RejectedExecutionException 错误,表明在Java应用程序中,一个任务尝试提交到线程池(ThreadPoolExecutor)去执行时被拒绝了,具体原因是线程池达到了其配置的容量限制,无法接纳更多的任务。下面是错误信息的详细解析:

  从上图可以看到以下线程池信息:

  • Running - 线程池当前处于运行状态。
  • pool size = 100 - 线程池配置的最大线程数为100,意味着它可以同时运行最多100个线程来处理任务。
  • active threads = 100 - 当前有100个线程正在活跃地执行任务,即所有的工作线程都在使用中。
  • queued tasks = 1000 - 任务队列的大小为1000,这意味着当所有线程都在使用时,额外的任务可以排队等待执行,但显然这个队列也已经满了。
  • completed tasks = 253 - 已经有253个任务在这个线程池中完成了执行。

查看报错时间点的cpu运行状态:

从cpu反映来看突然上升而且持续很短,这是由于更新了队列服务器信息一下全部涌过来,很多状态信息是重复的而且变化时间一般十几分钟,大多数信息基本是同样的状态可以忽略不处理,所以这个错误在这种业务环境下是不影响业务,也可以忽略不调整的。但也可以通过调整以下线程池参数优化掉这个错误。

三 解决错误(线程池参数调整)

1. 增加线程池的核心线程数或最大线程数
  • 核心线程数 (corePoolSize): 这些线程即使在空闲时也不会被销毁,增加核心线程数可以让更多的任务直接开始执行而不是等待。
  • 最大线程数 (maximumPoolSize): 设置更高的最大线程数可以容纳更多的并发任务,但也要注意不要设置得太高,以免耗尽系统资源。
2. 调整任务队列的容量
  • 如果你的应用能够容忍一定的延时,增大任务队列的大小可以让更多的任务排队等待执行,而不是直接被拒绝。但这也可能会增加任务的响应时间。
3. 更改拒绝策略
  • Java的ThreadPoolExecutor允许你自定义任务拒绝时的行为。默认情况下,当队列已满且线程数达到最大时,会使用AbortPolicy策略,直接抛出RejectedExecutionException。你可以改为:
    • CallerRunsPolicy: 让调用者所在的线程直接执行任务,这可能会影响主线程的性能。
    • DiscardPolicy: 直接丢弃任务,不执行也不抛出异常。适用于可丢弃的任务。
    • DiscardOldestPolicy: 丢弃队列中最旧的任务,然后尝试重新提交被拒绝的任务。适用于任务执行顺序不敏感的情况。
    • 自定义策略:根据应用需求实现自己的RejectedExecutionHandler

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1702657.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

捷报!恒瑞医药ADC创新药SHR-A1921卵巢癌适应症拟纳入突破性治疗品种公示

近日,恒瑞医药自主研发的TROP-2抗体偶联药物(antibody-drug-conjugate, ADC)注射用SHR-A1921用于治疗铂耐药复发上皮性卵巢癌、输卵管癌或原发性腹膜癌适应症被国家药品监督管理局药品审评中心拟纳入突破性治疗品种公示名单。今年3月&#xf…

ssm缴税管理系统-计算机毕业设计源码70555

摘 要 随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理。由于现在网络的发达,缴税管理系统的…

【RAG论文】检索信息中的噪音是如何影响大模型生成的?

前些天看到的两篇论文,论文标题为: 《The Power of Noise Redefining Retrieval for RAG Systems》《How Easily do Irrelevant Inputs Skew the Responses of Large Language Models》 主要讲述了检索文档是如何影响大模型输出的以及相关实验结果&…

基于ssm+vue图书管理系统

基于ssmvue图书管理系统 ssm477图书管理系统 相关技术 javassmmysqlvueelementui

物业

用户报修 审核专员可以操作(前端)🆗 工程部可以看到不可以操作(前端)🆗 项目经理可以看到不可以操作(前端)🆗 经理可以看到不可以操作(前端)&…

计算机网络——TCP / IP 网络模型

OSI 七层模型 七层模型是国际标准化的一个网络分层模型,大体结构可以分成七层。每层提供不同的功能。 图片来源 JavaGuide 但是这样七层结构比较复杂,不太实用,所以有了 TCP / IP 模型。 TCP / IP 网络模型 TCP / IP 网络模型可以看作是 O…

视频截图软件,这几款截图神器收好!

在数字化时代,视频内容已经成为我们获取信息、娱乐休闲的主要方式之一。而在观看视频的过程中,我们总会遇到一些想要定格下来的精彩瞬间。此时,一款高效的视频截图软件就显得尤为重要。今天,就为大家推荐几款功能强大、操作简便的…

倩女幽魂手游攻略:搬砖赚银指南,2024新手必备!

倩女幽魂手游作为一款热门的多人在线角色扮演游戏,吸引了大量玩家。在游戏中,搬砖(即通过游戏中的活动和任务赚取虚拟货币,并换取实际收益)成为了许多玩家的选择。本文将为大家详细介绍如何在倩女幽魂手游中高效搬砖&a…

1.5.3 基于Java配置方式使用Spring MVC

本实战教程主要介绍了如何使用Java配置方式来使用Spring MVC框架。相较于XML配置方式,Java配置方式提供了一种更为简洁和灵活的配置方法。 项目创建与配置 创建一个Jakarta EE项目,并设置项目名称和位置。选择Jakarta EE 10版本,不添加依赖&a…

【webrtc】RtpToNtpEstimator:最小二乘法、ntp估计及c++实例

上一篇: 【webrtc】RtpToNtpEstimator:将 RTP 时间戳映射到 NTP 时间 分析了最小二乘法的实现及对rtp到ntp的映射计算的调用流程 基于最小二乘法进行估计 RtpToNtpEstimator::Estimate G:\CDN\rtcCli\m98\src\system_wrappers\source\rtp_to_ntp_estimator.cc RtpToNtpEstima…

kettle学习之子映射组件

映射组件就跟java中的函数方法一样,类似一个子流程。 练习开始 根据数据库表中的id查询出想要的字段,并把字段存到excel表中 一、表输入 二、子映射 映射输入规范,类似java方法中的形参 name vsxcd是方法返回的参数 三、excel输出 运行结果…

【Linux】线程操作

文章目录 前言一、线程相关操作函数1. pthread_create2. pthread_join3. pthread_exit4. pthread_cancel5. pthread_detach6. 示例代码 前言 在 Linux 中并不存在真正意义上的线程, 而是通过复用进程的结构来实现的, 叫做轻量级进程. 线程是一个进程内部的一个执行流, 而一个进…

LangChain实战技巧之三:关于Tool的一点拓展

(几乎)任一LLM在bind_tools时,都是习惯先定义一个Function或BaseTool,然后再bind(bind_tools)具体方式可参考我的这篇文章 AI菜鸟向前飞 — LangChain系列之十三 - 关于Tool的必知必会 但这里的tool未必需…

GC日志中的Metaspace

GC 日志中的 Metaspace used 20580K, capacity 21180K, committed 21248K, reserved 1067008K class space used 2594K, capacity 2752K, committed 2816K, reserved 1048576K 一、Metaspace介绍 知道jdk8之前有perm这一整块内存来存klass等信息,我们的参数里也…

Python 文件操作指南:使用 open 和 with open 实现高效读写

🍀 前言 博客地址: CSDN:https://blog.csdn.net/powerbiubiu 👋 简介 本系列文章主要分享文件操作,了解如何使用 Python 进行文件的读写操作,介绍常见文件格式的读取和写入方法,包括TXT、 CS…

vue 表格表头展示不下,显示。。。;鼠标悬浮展示全部

vue 表格表头展示不下&#xff0c;显示。。。&#xff1b;鼠标悬浮展示全部 <templateslot-scope"scope"slot"header"><span:title"临时证券类型"style"white-space:nowrap">{{ 临时证券类型 }}</span></templa…

老年人培聊助手:温暖心灵的智能陪伴

在快节奏的现代生活中&#xff0c;老年人常常感到孤独和寂寞。为了给他们带来更多的陪伴和温暖&#xff0c;我们推出了全新的老年人培聊助手智能体。 这款培聊助手智能体不仅是一个智能聊天工具&#xff0c;更是老年人生活中的贴心伙伴。它拥有自然流畅的语言交互能力&#xf…

一文详解SaaS增长模式:PLG、MLG、SLG哪种更适合你?

在SaaS&#xff08;软件即服务&#xff09;的领域中&#xff0c;增长策略的选择对于企业的成功至关重要。其中&#xff0c;PLG&#xff08;产品驱动增长&#xff09;、MLG&#xff08;市场驱动增长&#xff09;和SLG&#xff08;销售驱动增长&#xff09;是三种常见的策略&…

COD20使命召唤20新赛季免费玩 COD20免费体验在哪下

使命召唤20&#xff08;COD20&#xff09;的免费周已经正式启动&#xff0c;这是一个为期一周的特别活动&#xff0c;为玩家们带来了前所未有的游戏体验。在这个特殊的周期里&#xff0c;多人模式和僵尸模式将向公众免费开放&#xff0c;玩家们可以尽情地探索和体验游戏的精彩内…

PUBG绝地求生卡在初始界面 登不上去 打不开游戏的解决办法

PUBG绝地求生卡在初始界面 登不上去 打不开游戏的解决办法 吃鸡热潮依旧绝地求生PUBG可是咱们玩家的心头好啊&#xff01;不过有时候可能会遇到点小麻烦&#xff0c;比如PUBG绝地求生卡在初始界面 登不上去 打不开游戏的解决办法。小编这就给大家分享几个超实用的解决方法&…