java jvm关闭事件,通知程序做某些事情
来源:互联网 发布:java自带的乘法函数 编辑:程序博客网 时间:2024/06/06 07:26
应用场景:某个程序发起了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;
}
}
}
如此一来,这个线程就可以正常的关闭了。
阅读全文
0 0
- java jvm关闭事件,通知程序做某些事情
- java中new一个对象jvm做了哪些事情
- shutdown hook(关闭钩子)的用处-程序关闭之前要做的事情
- Java程序某些解释
- Java JVM:垃圾回收(GC 在什么时候,对什么东西,做了什么事情)
- Java JVM:垃圾回收(GC 在什么时候,对什么东西,做了什么事情)
- Java JVM 8:垃圾回收(GC 在什么时候,对什么东西,做了什么事情)
- java中的方法之new一个对象的时候JVM都做了那些事情
- Java JVM:垃圾回收(GC 在什么时候,对什么东西,做了什么事情)
- 关闭事件跟踪程序
- Java事件通知机制
- 如果你不想做某些事情,那就找个对象吧, 让对象代你做!
- 网页关闭或刷新时执行某些动作事件
- win2003做桌面 关机 不显示“关闭事件跟踪程序”and 启用自动装载新卷
- java窗口关闭事件
- win2003关闭"显示关闭事件跟踪程序"
- 关于关闭事件跟踪程序
- 正确使用Java事件通知
- thinkphp中引入微信库
- 购物车2
- Echarts练习
- BZOJ1251 序列终结者
- LVM与软RAID的用法
- java jvm关闭事件,通知程序做某些事情
- Spring Cloud云服务架构
- paper digest
- mybatis和hibernate本质区别和应用场景
- Node.JS资料汇总收集
- 加油站以后还能叫加油站吗?
- 淡定!不要因为纳入了高考和二级考试甚至极个别小学课程就盲目夸大Python!
- QT5串口通讯代码示例
- 使用程序代码安装/卸载.net服务(不使用InstallUtil.exe)