这是Bella酱的第 58 期分享java
做者 | Bella酱web
事情的原由是这样的面试
莫慌,登陆机器top命令看一看top -H
缓存
一共2341个thread,其中2339个thread处于sleeping状态,盲猜项目中用到线程池的地方,线程处理完任务并无将处于空闲状态的线程回收掉,用arthas验证下本身的猜测。服务器
java -jar arthas-boot.jar
启动arthas微信
用dashboard
命令看下当前线程池等状况多线程
发现xx pool-0果真有好多线程处于waiting状态,验证个人想法。此时,若是你多线程执行的那个任务是用的同事开发的一个框架,那你就能够这个截图甩给同事了;若是是本身控制的线程池,那就要研究研究啦。app
推荐几个经常使用的arthas命令:框架
-
jad 类全路径
-
可查看类的源码,check服务器上运行的代码的正确性,以防分支太多,有同事解决冲突的时候将本身代码给改错了
-
trace 类全路径 方法名
-
可查看方法的调用链,以及调用链上每一步的耗时状况,对于定位和分析RT太高很是有帮助。
-
watch 类全路径 方法名 {params,returnObj,throwExp} -x 3
-
查看方法的入参、返回值、异常状况,-x 3指定遍历返回结果的深度为3,通常3层ok了。watch命令可动态监听该方法的调用状况,但并非无限制的。
-
thread -b
-
查找阻塞其余线程的线程
-
thread -n 10
查找当前最忙的10个线程编辑器
-END-
更多精彩文章
1. 在阿里当PM都须要作什么?Bella酱亲身经历告诉你!
2. 自定义Spring bean容器了解一下?实战及原理解读
4. 进大厂,你必须掌握的CPU缓存基础,看这篇文章就够了!
5. 大白话讲NIO~!
若是你喜欢本文
请长按二维码,关注 Bella的技术轮子
转发至 朋友圈,是对我最大的支持
喜欢就点个在看吧
本文分享自微信公众号 - Bella的技术轮子(wheel_of_bella)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。