因为内容比较多,截取了部分内容,可以看出会打印出线程的信息、状态以及堆栈,也会打印出 GC Task 的线程信息(ParallelGC 属于并行收集器,默认为 2 个线程),从中可以分析出每个线程都在做什么,如果服务器 CPU 占用高,可以看有多少个线程处于 RUNNABLE 状态,一般是由于处于 RUNNABLE 状态的线程过多,导致 CPU 过高;如果很多线程处于 TIMED_WAITING 状态,理论上 CPU 占用不会很高 。
总结本文主要对 JDK 常用的内置命令 javap、jps、jstat、jcmd、jmap、jhat、jstack 进行了简单讲解,大家可以自己在本机进行实践 。
了解这些命令后会在死锁、CPU 占用过高问题的排查、程序性能调优上会有很大的帮助,以后还会介绍 JDK 自带的图形化工具以及 CPU 占用过高的排查实例 。
最好的关系就是互相成就,大家的 在看、转发、留言 三连就是我创作的最大动力 。
参考
https://docs.oracle.com/javase/8/docs/technotes/tools/index.html#basic
JDK 内置命令工具
推荐阅读
- 人的哪类细胞死亡脱落后不可再生?
- 菊花茶可不可以搭配茉莉起泡,枸杞菊花茶用量
- MySQL使用规范手册,程序员必知必会
- 糖尿病冬季如何饮食养生 4款膳食必不可少
- 冬季餐桌上这些滋补蔬菜必不可少
- 生薏米不可以直接泡水喝,玫瑰花茶泡水喝的功效
- 写给JavaScript开发人员的PHP快速入门指南
- 桃花不可以长期喝,喝茉莉花茶的好处和功效作用
- Java线程、多线程与线程池总结
- 有哪些新手程序员不知道的小技巧?
