概述
应用场景:某个程序发起了N个线程循环不停做某些事情,正常情况下这些线程需要被安全的停止方可保证数据不丢失,如果停电的情况那就没辙,那么有时候需要关闭服务器,那么如何让jvm告诉其内部的程序现在要关闭了呢?答案是使用钩子(hook)
某个线程需要向jvm注册钩子,让jvm在停止的时候通知它,做法是:
WorkThread extend Thread{
class ShutdownCallbackThread extends Thread{
public void run(){flag=false;}//设置关闭筏值
}
private boolean flag=true;
public void run(){
//regist hook
ShutdownCallbackThread hook = new ShutdownCallbackThread();
Runtime.getRuntime().addShutdownHook(hook);
while(flag){
…working;
}
}
}
如此一来,这个线程就可以正常的关闭了。
最后
以上就是彪壮小鸽子为你收集整理的java jvm关闭事件,通知程序做某些事情的全部内容,希望文章能够帮你解决java jvm关闭事件,通知程序做某些事情所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复