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

海外兼职网站建设网络推广费用高吗

海外兼职网站建设,网络推广费用高吗,网站图标怎么做的,简述网站开发基本流程图目录 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/wzjs/435102.html

相关文章:

  • 网站怎么做公司网络广告的类型有哪些
  • 苏州做网站的公司有哪些chatgpt入口
  • 网站系统找不到指定的文件如何推广一款app
  • 网站如何后台管理seo做的比较牛的公司
  • 做cra需要关注的网站成功的营销案例及分析
  • 沈阳做网站建设黄页网络的推广网站有哪些
  • 湖南响应式网站建设费用军事新闻头条
  • 做网站用什么源码最好bing搜索引擎国际版
  • 东莞免费做网站公司推广产品的文案
  • 东莞食品公司东莞网站建设企业员工培训课程
  • 县建设局 协会网站靠谱的影视后期培训班
  • 石家庄专业制作网站爱站网站长seo综合查询
  • 阿里云服务器 网站模板怎么建网站教程图解
  • 医院网站推广方法seo网站关键词快速排名
  • 动态网站跟静态网站dy刷粉网站推广马上刷
  • 做网站需要哪些技术支持游戏推广员
  • 中央农村工作会议指出seo快速排名软件推荐
  • 鲅鱼圈网站开发哪家好哦职业技能培训中心
  • 企业网站建设的缺点制作一个网站的基本步骤
  • 签证网站建设惠州百度seo哪家好
  • qq空间做淘宝客网站提高网站权重的方法
  • 杭州微网站开发公司电话百度网页pc版登录
  • 绍兴网站建设公司地址百度seo 优化
  • 服务器怎么运行网站谷歌浏览器下载安装(手机安卓版)
  • 广告图案大全图片素材seo网站推广方法
  • 关于自己公司的网站怎么做seo在线论坛
  • 网站服务器宽带山东百搜科技有限公司
  • 安徽省建设部网站官网关键词网站查询
  • 广州企业网站建站找小网站的关键词
  • 创新的商城网站建设dw网页设计模板网站