Wird Shutdownhook garantiert ausgeführt, wenn JVM abstürzt [duplizieren]

8

Ich möchte wissen, ob Shutdownhook in dem Szenario ausgeführt wird, wenn JVM abstürzt.

    
kanojia_chandrashekhar 05.02.2013, 13:22
quelle

2 Antworten

11

Nein. Von den Dokumenten :

  

In seltenen Fällen kann die virtuelle Maschine abbrechen, dh nicht mehr ordnungsgemäß heruntergefahren werden. 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 oder nicht.

(Betonung meiner)

    
nneonneo 05.02.2013 13:23
quelle
1

shutdownhook erstellt jedoch einen Thread für alle Aufgaben, die ausgeführt werden müssen, bevor JVM mit dem Herunterfahren beginnt, und wenn der Computer selbst heruntergefahren wird, wird der Thread, der durch den Shutdown erzeugt wird, von
abgebrochen wird nie die CPU-Zyklen für dort Ausführung bekommen und ich denke, hier wird der Shutdownhook nicht ausgeführt werden ...

    
kanojia_chandrashekhar 05.02.2013 13:37
quelle

Tags und Links