《Java多线程编程核心技术(第2版)》 —1.2.2 使用常见命令分析线程的信息
【摘要】 本节书摘来自华章计算机《Java多线程编程核心技术(第2版)》 一书中第1章,第1.2.2节,作者是高洪岩。
1.2.2 使用常见命令分析线程的信息
可以在运行的进程中创建线程,如果想查看这些线程的状态与信息,则可采用3种常见命令,它们分别是jps+jstack.exe、jmc.exe和jvisualvm.exe,它们在jdk\bin文件夹中。
创建测试用的程序并运行,代码如下:
package test.run;
public class Run3 {
public static void main(String[] args) throws InterruptedException {
for (int i = 0; i < 5; i++) {
new Thread() {
public void run() {
try {
Thread.sleep(500000);
} catch (InterruptedException e) {
e.printStackTrace();
}
};
}.start();
}
}
}
1)采用第1种方式查看线程的状态—使用jps+jstack.exe命令。在cmd中输入jps命令查看Java进程,其中进程id是13824的进程就是当前运行类Run3对应的Java虚拟机进程,然后使用jstack命令查看该进程下线程的状态,命令如下:
C:\>cd jdk1.8.0_161
C:\jdk1.8.0_161>cd bin
C:\jdk1.8.0_161\bin>jps
13824 Run3
8328 Jps
C:\jdk1.8.0_161\bin>jstack -l 13824
按Enter键后就可以看到线程的状态。
2)采用第2种方式查看线程的状态—使用jmc.exe命令。双击jmc.exe命令出现如图1-9所示的欢迎界面。
关闭欢迎界面后双击Run3进程,再双击“MBean服务器”,然后单击“线程”选项卡,出现如图1-10所示的界面。
图1-9 jmc.exe命令的欢迎界面
图1-10 线程列表
在线程列表中可以看到5个线程的名称与状态。
3)采用第3种方式查看线程的状态—使用jvisualvm.exe命令。双击jvisualvm.exe命令,出现如图1-11所示的界面。
图1-11 jvisualvm.exe命令的主界面
双击Run3进程,再单击“线程”选项卡就看到了5个线程,如图1-12所示。
图1-12 可以看到5个线程
但采用jvisualvm.exe命令看不到线程运行的状态,所以推荐使用jmc.exe命令来分析线程对象的相关信息。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)