当我的程序使用addShutDownHook时,它表现得很厉害吗?
addShutDownHook只是添加一个新的Runnable(thread),只有在启动jvm关闭序列时,jvm才会运行它。该代码中的代码执行与普通代码类似,但仅在前面提到的特殊情况下才执行。通常用于某些清理或记录目的
请重新检查编写的代码,以确保它在逻辑上符合您的期望。
java中的信号处理(尤其是在Windows上,文档仍然不是100%清除)ref
发送信号时触发信号处理程序。信号不必关闭应用程序,如果应用程序关闭,则不会调用任何信号处理程序。
您可以在SignalHandler的handle方法中实现逻辑,在该方法中,您可以处理来自不同平台(OS)(如unix,ilnux和Windows)下当前活动进程的信号。SignalHandler中的逻辑可以像标准输出信号名称和时间戳一样,以在接收到某种特殊信号类型时记录或关闭进程。
[当我们使用addShutDownHook时,我们只是设置了线程退出的顺序,并且只有当JVM开始关闭时才会触发线程退出的顺序。
[我们经常在线程中使用addShutDownHook此方法来释放资源或网络连接,并且SignalHandler && Signal通常用于监视在此过程活动时间内从何处以及从何处接收到服务器进程。