简单而言就是JVM提供了一个钩子,能在JVM接受到关闭的信号量时候start一个线程,然后做一些清理工作,避免产生脏数据
Runtime.getRuntime().addShutdownHook(new Thread(){
@Override
public void run()
{
scheduledExecutorService.shutdown();
}
});