如何找到定时器线程的源?

9

我有一个大项目,还使用了许多库。通过jstack,我发现存在以下线程:

Timer-2, Timer-3, Timer-4....

而jstack只能显示以下内容:
java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.util.TimerThread.mainLoop(Unknown Source)
    - locked <0x1a013c24> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Unknown Source)

是否可能找到创建这些线程的类?


看起来像是一个线程池。问题在于找出是谁向这个线程池添加了要执行的任务。 - helios
http://www.java2s.com/Code/JavaAPI/java.lang/ThreadenumerateThreadtarray.htm - user1097489
2个回答

4
计时器线程是由 java.util.Timer 创建的。
如果您能够使用调试器,应该可以在计时器构造函数中设置断点并找到源代码。

我认为,也许可以使用AspectJ? - user710818

2
在调试环境中运行您的代码,并在线程构造函数上设置断点。

这是一个问题,由其中一个库创建的线程 - 我需要找出是哪个库。 - user710818
在调试器下,您将能够看到这些库何时创建线程。 - gliptak
如果您在线程创建(构造函数)上设置了断点,您应该能够看到哪个标准库“生成”了该线程。 - gliptak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接