ShutdownHook的使用

源码

import java.util.concurrent.TimeUnit;


public class HookTest {

    public static void main(String[] args) throws InterruptedException{
        Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("Hahaha");
            }
        }));

        TimeUnit.SECONDS.sleep(10);

        System.out.println("ending......");
    }
}

打印结果

ending......
Hahahajava

分析

JDK提供了Java.Runtime.addShutdownHook(Thread hook)方法,能够注册一个JVM关闭的钩子,这个钩子能够在一下几种场景中被调用:ide

    程序正常退出spa

    使用System.exit()code

    终端使用Ctrl+C触发的中断进程

    系统关闭get

    OutOfMemory宕机源码

    使用Kill pid命令干掉进程(注:在使用kill -9 pid时,是不会被调用的)it

相关文章
相关标签/搜索