java

位置:IT落伍者 >> java >> 浏览文章

Java虚拟机关闭钩子


发布日期:2019年12月13日
 
Java虚拟机关闭钩子

javalangRuntim类提供了addShutdownHook(Thread hook)方法用来添加虚拟机关闭的钩子

用途

1应用程序正常退出在退出时执行特定的业务逻辑

2虚拟机非正常退出比如用户按下ctrl+c操作系统关闭等在退出时执行必要的挽救措施

实例

public class TestOnExit {

public TestOnExit(){

doShutDownWork();

}

private void doShutDownWork(){

RuntimegetRuntime()addShutdownHook(new Thread(){

public void run(){

Systemoutprintln(application will exit );

}

});

}

public static void main(String[] args) {

TestOnExit exit=new TestOnExit();

long beginTime=SystemcurrentTimeMillis();

for(int i=;i<;i++){

try {

Systemoutprintln(application run the +i+ci);

Threadsleep();

} catch (InterruptedException e) {

eprintStackTrace();

}

}

long endTime=SystemcurrentTimeMillis();

Systemoutprintln(it speat time is +(endTimebeginTime));

}

}

可以做个测试首先正常运行

执行ctrl+c

然后再试试kill

但是遇到kill 命令就不行了所以这个东西还是不很稳定可用性不高!

kill 命令直接就把窗口关掉了很暴力

我又试了下kill 这个发现是可以的截个图上来

然后看运行的结果

是执行了钩子函数的

               

上一篇:Java远程方法调用 (3)

下一篇:Java控制台程序输入语句初探