在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键,将
替换为你在上一步中找到的进程ID:
jstack
例如:
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对象。