2013-02-05 10 views
8

Mögliche Duplizieren:
When Shutdown Hooks Break BadIst Shutdownhook garantiert werden ausgeführt, wenn JVM stürzt

Ich möchte wissen, ob shutdownhook garantiert wird in dem Szenario auszuführen, wenn JVM stürzt.

+0

Es sieht aus wie nicht einmal die Javadoc gelesen ... –

+2

Nun, wenn Sie die Maschine zum Beispiel herunterfahren, ist es garantiert, dass nichts ist passiert mehr. Fazit: Die JVM kann die Welt außerhalb der JVM nicht kontrollieren. –

+0

Meinst du einen JVM Crash? Nein. Wenn Sie eine Außerbetriebnahme nach einer Ausnahme meinen, sollten sie ausgeführt werden. Die meiste Zeit, wenn Leute über einen JVM-Crash sprechen, bedeutet das, dass ihr Programm eine Exception oder einen Error geworfen hat. –

Antwort

11

Nein. Von the docs:

:

In seltenen Fällen kann die virtuelle Maschine abbrechen, dh ohne sauberes Herunterfahren zu stoppen. Dies tritt auf, wenn die virtuelle Maschine extern beendet wird, z. B. mit dem Signal SIGKILL unter Unix oder dem Aufruf TerminateProcess unter Microsoft Windows. Die virtuelle Maschine kann auch abbrechen, wenn eine systemeigene Methode fehlerhaft arbeitet, indem sie beispielsweise interne Datenstrukturen beschädigt oder versucht, auf nicht vorhandenen Speicher zuzugreifen. Wenn die virtuelle Maschine abbricht, kann keine Garantie dafür übernommen werden, ob Shutdown-Hooks ausgeführt werden.

(Hervorhebung von mir)

1

shutdownhook jedoch einen Thread für was auch immer Aufgaben schafft erforderlich, bevor JVM getan werden beginnt Herunterfahren und wenn die Maschine selbst Abschaltung wird der Faden durch die shutdownhook erstellt
nie bekommen die CPU-Zyklen für dort Ausführung und ich denke, hier wird der Shutdownhook nicht ausgeführt ...

+0

Sie haben gefragt, was passiert, wenn die JVM abstürzt, nicht was passiert, wenn der Computer zwangsweise heruntergefahren wird. Im letzteren Fall denke ich, dass es intuitiv offensichtlich ist, dass nichts (nicht einmal Herunterfahren-Haken) ausgeführt wird, nachdem die Stromversorgung entfernt wurde. – nneonneo

+0

hey danke !! Ich habe gerade an den möglichen Szenarien gearbeitet, in denen JVM abgestürzt ist. –

Verwandte Themen