Я хочу знать, что такое дамп java-потока. Может кто-то, пожалуйста, помогите мне понять, что такое дамп потока и как он относится к работающей Java-программе?
В чем смысл "дампа потока",
Ответ 1
Дамп потока Java - это способ узнать, что делает каждый поток в JVM в определенный момент времени. Это особенно полезно, если ваше приложение Java иногда кажется зависающим при работе под нагрузкой, поскольку анализ дампа показывает, где потоки застревают.
Вы можете создать дамп потока в Unix/Linux
, запустив kill -QUIT <pid>
и под Windows
, нажав Ctl + Break
.
Знать, как взять дамп потока из JVM см. здесь
Чтобы узнать, как создать дамп потока см. здесь
За дополнительной информацией: Java Sanity
Ответ 2
От http://www.javasanity.org/understandingthreaddumps:
Дамп потока - это моментальный снимок того, что выполняется в момент времени
Есть много ресурсов, которые могут помочь вам понять/проанализировать дамп потока (например http://www.javacodegeeks.com/2012/03/jvm-how-to-analyze-thread-dump.html).
Вы также можете найти полезный следующий вопрос: Инструмент/метод анализа дампа нити
Ответ 3
"Дамп потока - это список всех потоков Java, которые в настоящее время активны в виртуальной машине Java (JVM)". (ссылка)
Обычно поток в этом списке представлен его текущим стеклом и состоянием потока (работает, приостановлено, заблокировано и т.д.).
Ответ 4
Дамп потока - это вывод состояния стека вызовов в момент сбоя вашей программы. Это должно позволить вам понять, что в программе пошло не так, потому что оно показывает, что именно делает программа (и почему).
У вас есть дамп потока, который вам нужно посмотреть?