RunTime.getRunTime().addShutdownHook()用法

前言

Runtime.getRuntime().addShutdownHook(shutdownHook);
这个方法的意思就是在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子,当系统执行完这些钩子后,jvm才会关闭。所以这些钩子可以在jvm关闭的时候进行内存清理、对象销毁等操作。

测试代码:

 /**
     * jvm关闭时的执行钩子函数测试
     */
    @Test
    public void shutDownHookTest() {
        Thread thread1 = new Thread(() -> System.out.println("thread1 start...."));
        Thread thread2 = new Thread() {
            @Override
            public void run() {
                System.out.println("thread2 start.....");
            }
        };

        // 定义jvm关闭时的钩子线程函数
        Thread shutDownThread = new Thread() {
            @Override
            public void run() {
                System.out.println("钩子函数-系统服务停止....");
            }
        };
        // 这个方法的意思就是在jvm中增加一个关闭的钩子,
        // 当jvm关闭的时候,会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子,
        // 当系统执行完这些钩子后,jvm才会关闭。所以这些钩子可以在jvm关闭的时候进行内存清理、对象销毁等操作
        Runtime.getRuntime().addShutdownHook(shutDownThread);

        // 启动线程测试
        thread1.start();
        thread2.start();
        // 输出结果:无论是thread1在前还是thread2在前,jvm关闭时,都是shutDownThread最后执行。
    }

执行结果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌兮~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值