《Java多线程编程核心技术(第2版)》 —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命令来分析线程对象的相关信息。
- 点赞
- 收藏
- 关注作者
评论(0)