java中Runtime.getRuntime().addShutdownHook()方法的作用
时间: 2024-02-10 11:48:52 浏览: 150
深入研究java.lang.Runtime类.doc
`Runtime.getRuntime().addShutdownHook(Thread hook)` 方法会注册一个新线程,当 JVM 即将关闭时,该线程将被启动并执行。这个方法通常用于在 JVM 关闭前进行清理工作,如关闭文件、释放资源等。
当 JVM 即将关闭时,它会向所有已注册的 shutdown hook 线程发送一个停止信号,然后等待这些线程执行完成后再真正退出。这个方法提供了一种机制,使得我们可以在 JVM 关闭前执行一些必要的操作,以确保程序关闭时状态良好,不会留下未处理的问题。
需要注意的是,Shutdown hook 线程必须是非守护线程,否则 JVM 可能在执行完 Shutdown hook 线程之后直接退出,而不等待其他线程完成。另外,在注册 Shutdown hook 线程时需要注意线程安全,避免多个线程同时注册导致竞争问题。
阅读全文