java钩子作用,例子

来源:互联网 发布:个性域名格式不正确 编辑:程序博客网 时间:2024/05/23 00:33

参考:  http://www.cnblogs.com/langtianya/p/4300282.html

             http://blog.csdn.net/wangxin1982314/article/details/50847638



package com.qz.hesvit;



/**
 * @author LIPING
 * Runtime.getRuntime().addShutdownHook(shutdownHook);


   这个方法的含义说明:
         这个方法的意思就是在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子,
         当系统执行完这些钩子后,jvm才会关闭。所以这些钩子可以在jvm关闭的时候进行内存清理、对象销毁等操作。
 * 
 * JVM关闭的时候才执行java钩子,最后执行
 */
public class JavaGZ {



// 用途
// 1应用程序正常退出,在退出时执行特定的业务逻辑,或者关闭资源等操作。
// 2虚拟机非正常退出,比如用户按下ctrl+c、OutofMemory宕机、操作系统关闭等。在退出时执行必要的挽救措施。


//例子如下
public static void main(String[] args) {


Thread thread1 = new Thread() {
@Override
public void run() {
System.out.println("thread1thread1thread1");
}
};
Thread thread2 = new Thread() {
@Override
public void run() {
System.out.println("thread2thread2thread2");
}
};


// 定义关闭线程
Thread shutdownThread = new Thread() {
public void run() {
System.out.println("shutdownThread...");
}
};

thread1.start();
thread2.start();
Runtime.getRuntime().addShutdownHook(shutdownThread);
}


}
原创粉丝点击