如何从线程转储中找到实​​现线程的类?

时间:2014-05-15 10:02:26

标签: java multithreading thread-dump

在我的线程转储中,我发现了这一行:

"lir" daemon prio=5 tid=7f927c7b0000 nid=0x121f40000 in Object.wait() [121f3f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <7f70bedf0> (a java.util.TaskQueue)
    at java.util.TimerThread.mainLoop(Timer.java:509)
    - locked <7f70bedf0> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:462)

如何找到实现或启动此ThreadRunnable的课程?

1 个答案:

答案 0 :(得分:0)

我能想到的两个“半解决方案”:

  • 在调试模式下运行进程时使用Eclipse调试器(在其他环境中可能存在等价物),如果暂停执行,则可以检查任何给定线程的堆栈跟踪,并可能在顶级元素

  • 在线程上使用setName()作为其创建位置或线程子类名称的指示