在Windows的命令提示符(cmd)中,你可以使用jps
命令来查看Java进程和它们的线程。首先,确保你已经安装了Java Development Kit(JDK),因为jps
命令是JDK的一部分。
以下是查看Java线程的步骤:
打开命令提示符(cmd)。
输入以下命令并按Enter键:
jps
这将显示当前Java进程及其进程ID(PID)。例如:
12345 Main
67890 Jps
找到你想要查看线程的Java进程。请注意其进程ID(PID)。
输入以下命令并按Enter键,将<PID>
替换为你在上一步中找到的进程ID:
jstack <PID>
例如:
jstack 12345
这将显示Java进程的线程堆栈跟踪。在输出中,你可以看到线程ID(TID)、线程名称、阻塞状态等信息。例如:
"Thread-0" #11 prio=5 os_prio=0 tid=0x00007f9d0006000 nid=0x1a03 waiting on condition [0x00007f9d03f9d000]
java.lang.Thread.State: BLOCKED (on object monitor)
at Main.method1(Main.java:10)
- waiting to lock <0x00000000d60d8e80> (a java.lang.Object)
at Main.lambda$main$0(Main.java:5)
at Main$$Lambda$1/651919126.run(Unknown Source)
at java.lang.Thread.run(Thread.java:748)
"Thread-1" #12 prio=5 os_prio=0 tid=0x00007f9d0008000 nid=0x1a04 waiting on condition [0x00007f9d03f9e000]
java.lang.Thread.State: BLOCKED (on object monitor)
at Main.method2(Main.java:15)
- waiting to lock <0x00000000d60d8e80> (a java.lang.Object)
at Main.lambda$main$1(Main.java:5)
at Main$$Lambda$2/1914696866.run(Unknown Source)
at java.lang.Thread.run(Thread.java:748)
在这个例子中,你可以看到两个线程(Thread-0和Thread-1)都处于阻塞状态,等待锁定某个Java对象。