Получить дамп потока (thread dump) в Java можно несколькими способами.
jstack <pid>: Самый распространенный способ. Требует PID Java-процесса.
bash
jcmd <pid> Thread.print: Более новый инструмент, универсален.
bash
kill -QUIT <pid> (Linux/macOS): Отправляет сигнал QUIT процессу, который приводит к выводу дампа потоков в стандартный вывод или лог-файл приложения.
bash
Можно получить дамп программно, используя API JMX (java.lang.management.ThreadMXBean). Это полезно для интеграции с инструментами мониторинга или для получения дампа по определенному условию.
java
Дамп потока показывает состояние каждого потока в JVM, включая его стек вызовов, состояние (RUNNABLE, WAITING, TIMED_WAITING, BLOCKED), а также информацию о блокировках (мониторы и синхронизаторы), что критично для отладки проблем с производительностью, зависаниями (deadlocks) и блокировками.