实战

来源:互联网 发布:淘宝寺庙拍卖是真的吗 编辑:程序博客网 时间:2024/04/28 12:21

做一个爱护环境,热爱资源的程序员,在使用应用程序后,记录及时释放资源,在阅读LTS源码时,发现了Runtime.addShutdownHook()的用法,稍微记录一下。使用该方法可以给当前JVM注册一个关闭挂勾线程,在程序退出时,会执行这个关闭挂勾线程,而这个时间点,最适合进行资源的释放工作。

以下直接看实例代码:

/* * JVM虚拟器关闭挂勾:在JVM关闭时,触发执行:一般用于资源释放。 * 在2种情况下,会执行关闭挂勾: * 1.程序退出,就是程序执行完成(最后一个非守护线程退出); * 2.执行了System.exit()方法,退出程序; * 注意:直接kill进程不会执行关闭挂勾的。 * * */public class AddShutDownHook {    public static void main(String[] args) throws InterruptedException {        System.out.println("主线程运行.....等我5s......");        Thread.sleep(5000);        //程序退出之前会执行关闭挂勾        Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {            @Override            public void run() {                System.out.println("别着急关闭,等我先执行完。");            }        }));        //System.exit(0);  //也会执行关闭挂勾        System.out.println("主线程运行完毕。");    }}
原创粉丝点击