2012-01-16 10 views
8

Mam duży projekt, który również wykorzystuje wiele bibliotek. Z jstack odkryłem, że istnieją wątki, takie jak:Jak znaleźć źródło wątku timera?

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

i wszystko, co może mi jstack Wyświetlacz:

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) 

Czy to możliwe, aby znaleźć klasę, gdzie te wątki, gdzie stworzył?

+0

Wygląda jak kałuża. Pytanie brzmi: kto dodaje zadania do wykonania do tego basenu-bieżnika. – helios

+0

http://www.java2s.com/Code/JavaAPI/java.lang/ThreadenumerateThreadtarray.htm – user1097489

Odpowiedz

2

Gwinty licznika czasu są tworzone przez java.util.Timer.

Jeśli jesteś w stanie używać debuggera, powinieneś być w stanie ustawić punkt przerwania w konstruktorach czasomierza i znaleźć źródło.

+0

Myślę, że może być możliwe użycie AspectJ? – user710818

1

Uruchom swój kod w środowisku debugowania i umieść punkt przerwania w Konstruktorach gwintów.

+0

To jest problem, wątek stworzony przez jedną z bibliotek - muszę znaleźć które. – user710818

+0

Pod debuggerem można zobaczyć, kiedy którakolwiek z tych bibliotek utworzy wątek. – gliptak

+0

cały kod w debuggerze - tylko standardowe biblioteki – user710818