当前位置: 首页 > news >正文

旅游公司网站建设方案网站的布局结构三种

旅游公司网站建设方案,网站的布局结构三种,广告平面设计公司,做那个免费视频网站目录 1. 问题背景 2.问题分析 3.排查 3.1.查看线程堆栈 3.2.查看阻塞线程信息 3.3.定位到异常线程 3.4.定位到具体业务代码 3.5.解决 4.疑问 1. 问题背景 一个spring boot开发的项目,spring boot版本是2.7.13。其他同事定义的bean冲突了,导致项…

目录

1. 问题背景

2.问题分析

3.排查

3.1.查看线程堆栈

3.2.查看阻塞线程信息

3.3.定位到异常线程

3.4.定位到具体业务代码

3.5.解决

4.疑问


1. 问题背景

一个spring boot开发的项目,spring boot版本是2.7.13。其他同事定义的bean冲突了,导致项目启动失败,进程也不退出。

我这边是因为线程池问题导致的。

2.问题分析

正常来说,项目启动失败后,进程会直接退出。所以问题大概率是死锁、长时间等待外部资源(例如数据库连接、I/O操作)、线程池未关闭。

3.排查

3.1.查看线程堆栈

IDEA内置了一个工具,可以直接查看当前所有线程的堆栈信息,相当于jstack <pid> 命令。

3.2.查看阻塞线程信息

一个一个点击红色图标的线程,查看线程的具体情况。

标识有daemon的线程不需要过多关注,daemon 是一个线程的属性,它表示该线程是 守护线程。守护线程与普通线程的区别在于,当所有非守护线程(即普通线程)结束时,守护线程会自动结束,无论它是否执行完任务。

3.3.定位到异常线程

通过一个一个点击,我这边除了pool-15-thread是普通线程,其他都是守护线程,重点关注这个。

通过堆栈记录,基本上可以确定是因为线程池一直在执行导致的启动失败进程没有结束问题。

然后我在idea里全局搜索线程池相关的类ThreadPoolExecutor,发现项目中还是挺多的,无法确定具体是那个。堆栈记录也没有更详细的信息。

没办法,只能通过打断点了。

outerTask是正在执行的实际任务,通过这个可以看到具体的业务代码。

3.4.定位到具体业务代码

在这里发现创建了一个定时执行的线程,所以,启动失败该线程也不会结束。

3.5.解决

添加一个销毁钩子,spring容器删除的时候,该钩子就会被调用。在这个方法里,我们来手动关闭一下线程池。

4.疑问

可能大家会有疑问,我们项目也是这样使用的,并没有出现这种问题。

springboot 加载bean是有顺序的,我这边是先创建的线程,然后在加载其他bean的时候报错了。如果你们是先报的错,后面就不会创建线程池了,自然就没有这种问题。

http://www.dtcms.com/a/442143.html

相关文章:

  • Django ORM 无法通过 `ForeignKey` 自动关联,而是需要 **根据父模型中的某个字段(比如 ID)去查询子模型**。
  • 吉林省建设厅信息网站网站建设的评价
  • 分布式专题——26.5 一台新机器进行Web页面请求的历程
  • 怎么让别人看到自己做的网站万维网网站301重定向怎么做
  • css样式学习记录
  • 网站服务器关闭网站数据库地址是什么
  • 每日一个C语言知识:C程序结构
  • Amazon RDS:云端数据库管理的革新之路
  • wordpress登录可见站内seo是什么意思
  • STM32简单的串口Bootloader入门
  • 360网站怎么做2核4g做网站
  • 从 “手工作坊” 到 “智能工厂”:2025 年 AI 原生应用重构内容创作产业
  • 做网站平台难在哪里网页翻译不见了
  • Flutter技术栈深度解析:从架构设计到性能优化
  • 学做湘菜的视频网站中国建设企业银行登录网站
  • 【Python进阶】网络爬虫核心技能-第三方IP服务
  • CAS密钥管理系统在汽车行业的核心密钥管理实践——构建智能网联汽车的可信安全底座
  • 宝塔面板登录地址和账密都忘了怎么解决
  • 廊坊大城网站建设义乌创源网站建设
  • Spring-AI 接入(本地大模型 deepseek + 阿里云百炼 + 硅基流动)
  • 华为OD机试C卷 - 分苹果 - 二进制 - (Java C++ JavaScript Python)
  • 国内好的seo网站网站建设课程的感受
  • 用 Gradle 配置 Flink 从开发到打包的一条龙实践
  • gRPC从0到1系列【17】
  • 浅谈内存DDR——DDR4性能优化技术
  • 静态网页模板网站电商运营培训班
  • mysqldump导入备份数据到阿里云RDS会报错吗
  • QT肝8天16--加载动态菜单
  • Spring Boot整合缓存——Redis缓存!超详细!
  • 湘潭做网站品牌磐石网络wordpress 柚子皮