El método Runtime.addShutdownHook
se puede utilizar para agregar un gancho de apagado, que es básicamente un Thread
no iniciado, que se ejecuta al apagar la máquina virtual Java.
Sin embargo, este es un territorio que debe pisarse con cuidado, ya que se realiza en un momento muy delicado del ciclo de vida de la JVM. A partir de las especificaciones API para el método Runtime.addShutdownHook
: ganchos
de apagado se ejecutan en un momento delicado en el ciclo de vida de una máquina virtual y por lo tanto debe codificarse defensiva. Deben escribirse, en el en particular, como seguro para subprocesos y para evitar los interbloqueos en la medida de lo posible.
En cualquier caso, asegúrese de leer un poco sobre cómo funcionan los ganchos de desconexión, ya que probablemente no deberían abordarse sin una buena preparación. Asegúrese de leer cuidadosamente la Especificación API para el método Runtime.addShutdownHook
.
Aquí hay un par de artículos que encontré de búsqueda de información para esta respuesta:
Shutdown Hooks - que muestra un pequeño ejemplo de cómo se añade un gancho de cierre para iniciar la sesión en el apagado.
Design of the Shutdown Hooks API - aborda algunas decisiones de diseño de los ganchos de cierre en un estilo de pregunta y respuesta.