一次使用JDK自带jstack分析线程数过大的经历

      之前有写到过modbus的协议空调面板控制,经历了去年冬天的考验,还算勉强合格。这次客户反馈CPU占用高,线程数比较大。

一、现象说明

        这边前置机在局域网跑modbus项目,通过与控制局域网内网关通讯,走modbus协议控制空调面板。用的时tomcat9跑项目,然后加到了服务里。这里使用系统自带的资源管理器查看线程数情况。

     看到没,线程数1510,有点大啊。

二、使用JDK自带工具分析原因

      不得不说JAVA真的是牛啊,纵然JDK收费,我也爱它。我这里使用的是免费的最高版本1.8。

     首先说明cmd命令框需要以管理员身份运行,否则报错,如图:

     

    这里的1848是pid进程号。

    以管理员身份运行cmd框后,因为不想在黑框框里看,想保存为文件查看,所以使用

 jstack -F -l 1848 >> 路径\文件名,

不知道命令怎么用,可以直接输入jstack,它会提示的,或者问度娘。

我这里保存为txt,即文件名1111.txt。如图:

文件名出来后,可以看到好多线程阻塞,BLOCKED就是阻塞的意思。

然后,还会打印出阻塞的代码行。到此原因就定位到了。马上要下大雨了,老婆在催回家,明天来分析代码。这个代码大致看了下是老外写的,modbus的相关:

分析记过是指向这一行的。明天继续。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥仔哥哥1930

来一波支持,吃不了亏上不了当

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值