Linux查看线程的状态

1).htop按t(显示进程线程嵌套关系)和H(显示线程) ,然后F4过滤进程名(htop需要进行安装)

2).ps -eLf | grep java(快照,带线程命令,e是显示全部进程,L是显示线程,f全格式输出)

3).pstree -p (显示进程树,不加pid显示所有)

4).top -Hp (实时)

5).ps -T -p (快照)

推荐程度按数字从小到大。

查询具体线程的堆栈信息

1、首先需要找到对应进程的pid

利用 top 、ps 都可以

2、根据进程的pid找到进程的pid

上面几种查看线程状态的方法都可以获取到

3、将线程的pid转换为16进制数目
(1)自己口算
(2)利用命令

printf “%x” 27231(27231是线程的pid)

在这里插入图片描述

4、查看堆栈信息

// 27177 是进程的pid ,'6a5f'是线程pid的16进制 
jstack 27177 | grep '6a5f' -C5 --color

在这里插入图片描述
如果知道负载很高的进程,就可以知道对应负载很高的线程,然后获取到该线程的名称与nid以及看到了该线程正在执行代码的堆栈信息

题外话

小潘的个人微信公众号【小潘学程序】,有兴趣可给个关注~

一起学习,一起成长

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐