Il metodo Runtime.addShutdownHook
può essere utilizzato per aggiungere un gancio di arresto, che è fondamentalmente un Thread
non avviato, che viene eseguito all'arresto della Java Virtual Machine.
Tuttavia, questo è un territorio che deve essere seguito con attenzione, poiché viene eseguito in un momento molto delicato del ciclo di vita della JVM. Dalle specifiche API per il metodo Runtime.addShutdownHook
: porta
arresto eseguiti in un momento delicato nel ciclo di vita di una macchina virtuale e devono quindi essere codificati difensiva. Dovrebbero, in particolare, scrivere per essere protetto da threading e per evitare i blocchi bloccati nella misura del possibile.
In ogni caso, assicurarsi di leggere un po 'su come funzionano gli hook di arresto, poiché probabilmente non dovrebbero essere affrontati senza una buona preparazione. Assicurati di leggere attentamente le Specifiche API per il metodo Runtime.addShutdownHook
.
Ecco sono un paio di articoli che ho trovato da ricerca di informazioni per questa risposta:
Shutdown Hooks - mostra un piccolo esempio di come si aggiunge un gancio di arresto per l'accesso allo spegnimento.
Design of the Shutdown Hooks API - affronta alcune decisioni di progettazione dei ganci di arresto in uno stile di domande e risposte.