Wie benutzt man jstack um blocker-thread zu finden?

8

Mit Jstack habe ich einen Baum von Threads ausgeführt.

  1. Was bedeuten die folgenden Thread.States:

    • WARTEN
    • TIMED_WAITING
    • RUNNABLE
  2. Was bedeutet tid und nid?

  3. Der Titel eines Threads ist wie

    "Ereignis-Stapelverarbeitung (Spring UAA / 1.0.2)" Daemon prio = 10 tid = 0x0000000041e27800 nid = 0x363b wartet auf Bedingung [0x00007f9a89267000]

    • Wie kann ich zur Sourcecode-Zeile der "Warte-auf-Bedingung" -Adresse
    • navigieren?
Peter Rader 24.11.2011, 10:32
quelle

1 Antwort

12
  1. WAITING bedeutet, dass der Thread auf etwas wartet. Normalerweise würden Sie "WARTEN (auf Objektmonitor)" sehen, dh es wartet auf eine Benachrichtigung (). TIMED_WAITING ist eine Variante von WAITING, bei der der Thread ein maximales Zeitlimit hat, um zu warten. RUNNABLE bedeutet, dass der Thread momentan Code ausführt, wenn der Jstack ausgeführt wurde.

  2. "tid" ist die Thread-ID, die der Thread in der JVM hat (könnte eine Speicheradresse sein). "nid" ist die native Thread-ID (in hex). Auf einigen Linux-Systemen ist diese ID direkt auf eine Prozess-ID (Nummer 13883 (in Dezimal) in Ihrem Fall).

  3. Wenn Sie Eclipse verwenden, könnte das Plugin Ссылка von Interesse sein. Mit diesem Tool ist es möglich, schnell zum Quellcode und zur Zeile zu navigieren.

Lennart Schedin 24.11.2011, 13:11
quelle

Tags und Links