8 Stimmen

So finden Sie mit jstack den Blocker-Thread

Mit jstack habe ich einen Baum von laufenden Threads.

  1. Welche Bedeutung haben die folgenden Thread.State's:

    • WARTEZEIT
    • TIMED_WAITING
    • RUNNABLE
  2. Was bedeuten die tid und nid?

  3. Der Titel eines Threads lautet wie folgt

    "Event Batch Processing (Spring UAA/1.0.2)" daemon prio=10 tid=0x0000000041e27800 nid=0x363b waiting on condition [0x00007f9a89267000]

    • Wie kann ich zur Sourcecode-Zeile der "waiting-on-condition"-Adresse navigieren?

12voto

Lennart Schedin Punkte 1036
  1. WAITING bedeutet, dass der Thread auf etwas wartet. Typischerweise sieht man "WAITING (on object monitor)", was bedeutet, dass er auf ein notify() wartet. TIMED_WAITING ist eine Variante von WAITING, bei der der Thread ein maximales Zeitlimit zum Warten hat. RUNNABLE bedeutet, dass der Thread gerade einen Code ausführt, als der jstack ausgeführt wurde.

  2. "tid" ist die Thread-ID, die der Thread in der JVM hat (kann eine Speicheradresse sein). "nid" ist die native Thread-ID (in Hex). Auf einigen Linux-Systemen wird diese ID direkt einer Prozess-ID zugeordnet (in Ihrem Fall die Nummer 13883 (dezimal)).

  3. Wenn Sie Eclipse verwenden, wird das Plugin http://lockness.plugin.free.fr/ könnte von Interesse sein. Mit diesem Werkzeug ist es möglich, schnell zum Quellcode und zur Zeile zu navigieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X