2012-09-05 13 views
20

Chcę wiedzieć, co jest zrzut wątku java. Czy ktoś może mi pomóc zrozumieć, co to jest zrzut wątku i jak odnosi się do działającego programu java?Co to jest "zrzut wątku"?

+2

Dosłownie wysypisk nazwę i stos (gdzie program jest uruchomiony) każdego wątku. Może być używany do pomocy w określeniu, co robi twój program. VisualVM jest jednym z najlepszych sposobów wizualizacji wszystkich wątków w twoim procesie. –

+5

* "podziel się mną trochę wiedzy." * Odpowiedzi na te pytania często można uzyskać, umieszczając słowa kluczowe w wyszukiwarce. W takim przypadku szukaj w "java + wątek + zrzut". –

+10

Po prostu wyszukiwano w Google hasło "znaczenie wątku", a pierwszym wynikiem było pytanie o stackoverflow. To właśnie sprawia, że ​​stackoverflow jest świetną platformą dla wszystkich twórców, podstawowych pytań nie należy zniechęcać. –

Odpowiedz

23

Zrzut wątku Java jest sposobem sprawdzenia, co każdy wątek w maszynie JVM wykonuje w określonym momencie. Jest to szczególnie przydatne, gdy twoja aplikacja Java czasami zawiesza się podczas pracy pod obciążeniem, ponieważ analiza zrzutu pokazuje, gdzie wątki utknęły.

Możesz wygenerować zrzut wątku pod Unix/Linux, uruchamiając kill -QUIT <pid>, a pod Windows, naciskając Ctl + Break.

umieć podjąć wątek zrzut z JVM see here

Aby dowiedzieć się, jak utworzyć wątku zrzutu see here

Aby uzyskać więcej informacji: Java Sanity

+0

"w konkretnym momencie" czy możemy w jakiś sposób zdefiniować okres, na który składany jest zrzut? –

0

Zrzut wątek jest wyjście stanu zadzwoń do stosu w momencie, gdy twój program się nie powiódł. To powinno pozwolić ci się zorientować, że w programie coś poszło nie tak, ponieważ pokazuje dokładnie, co robi program (i dlaczego).

Czy masz zrzut wątku, którego szukasz?

2

„Zrzut wątku jest lista wszystkich wątków Java, które są aktualnie aktywne w Java Virtual Machine (JVM).” (link)

Zazwyczaj nitki na tej liście jest reprezentowana przez jej obecnego stacktrace i stanu wątku (bieganie, zawieszone, zablokowane, itd.)