《Java多线程编程核心技术(第2版)》 —1.2.2 使用常见命令分析线程的信息

举报
华章计算机 发表于 2020/02/08 13:31:14 2020/02/08
【摘要】 本节书摘来自华章计算机《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所示的界面。

 image.png

图1-9 jmc.exe命令的欢迎界面

 image.png

图1-10 线程列表

在线程列表中可以看到5个线程的名称与状态。

3)采用第3种方式查看线程的状态—使用jvisualvm.exe命令。双击jvisualvm.exe命令,出现如图1-11所示的界面。

 image.png

图1-11 jvisualvm.exe命令的主界面

双击Run3进程,再单击“线程”选项卡就看到了5个线程,如图1-12所示。

 image.png

图1-12 可以看到5个线程

但采用jvisualvm.exe命令看不到线程运行的状态,所以推荐使用jmc.exe命令来分析线程对象的相关信息。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。