Java线程监控。如何找出非守护进程的直播线程?

时间:2011-12-16 16:20:00

标签: java multithreading visualvm jconsole jstack

我使用多线程程序做一些工作。我在JConsole中看到我仍然有2个非守护程序线程,但我无法确切知道哪个(线程总数超过30)。 Visual VM不提供此类信息。

2 个答案:

答案 0 :(得分:20)

执行命令

$ jstack PID | grep tid= | grep -v daemon

这将转储给定Java PID的所有线程,过滤具有线程名称的行并过滤掉非守护进程的那些。

删除-v仅打印守护程序线程。

答案 1 :(得分:2)

在VisualVM中进行线程转储。守护程序线程在线程名称旁边有单词“daemon”。

"Default RequestProcessor" daemon prio=1 tid=101e58000 nid=0x124d86000 runnable [124d85000]