锁定老帖子 主题:java虚拟机关闭钩子
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-06-03
最后修改:2010-06-04
java.lang.Runtim类提供了addShutdownHook(Thread hook)方法,用来添加虚拟机关闭的钩子。
用途 1应用程序正常退出,在退出时执行特定的业务逻辑
2虚拟机非正常退出,比如用户按下ctrl+c,操作系统关闭等。在退出时执行必要的挽救措施。
实例: public class TestOnExit {
执行ctrl+c 然后再试试kill -9 , 但是遇到kill -9 命令就不行了,所以这个东西还是不很稳定。可用性不高! kill -9 命令直接就把窗口关掉了,很暴力 , 我又试了下kill -15 这个,发现是可以的。截个图上来。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-06-04
嗯,很多时候都执行不到,但是那些情况可以不考虑,这个里面不应该执行关键性操作,但是还是有用
|
|
返回顶楼 | |
发表时间:2010-06-04
难道你希望停电或者死机的时候,还能执行钩子里面的代码么?
|
|
返回顶楼 | |
发表时间:2010-06-04
beneo 写道 难道你希望停电或者死机的时候,还能执行钩子里面的代码么?
停电肯定是不可能执行的了,关机这个我还没测试过的!呵呵,感觉这个东西并非到处都适用! 至于正常关机这种情况我今天测试一下看看! |
|
返回顶楼 | |
发表时间:2010-06-04
chenhua_1984 写道 beneo 写道 难道你希望停电或者死机的时候,还能执行钩子里面的代码么?
停电肯定是不可能执行的了,关机这个我还没测试过的!呵呵,感觉这个东西并非到处都适用! 至于正常关机这种情况我今天测试一下看看! The Java virtual machine shuts down in response to two kinds of events: The program exits normally, when the last non-daemon thread exits or when the exit (equivalently, System.exit) method is invoked, or The virtual machine is terminated in response to a user interrupt, such as typing ^C, or a system-wide event, such as user logoff or system shutdown. 这两句话已经说明了情况了,我觉得非常明确了。 其实我上面说的关机,是按住电源键不放,基本上跟停电一样。。。 |
|
返回顶楼 | |
发表时间:2010-06-04
kill -9 肯定是不行的,强制关闭了,不属于楼上说的两种情况
|
|
返回顶楼 | |
发表时间:2010-06-04
kill -9 是不行的
kill还有别的一些参数,kill -非9 应该能用到 哈哈 |
|
返回顶楼 | |
发表时间:2010-06-04
tzm1984 写道 kill -9 是不行的 kill还有别的一些参数,kill -非9 应该能用到 哈哈 试了下kill -15 这个是可以的,你说的对。 |
|
返回顶楼 | |
发表时间:2010-06-04
操作系统来不及通知虚拟机就Over的情况下,这个是没有用处的
|
|
返回顶楼 | |
发表时间:2010-06-04
pujia12345 写道 操作系统来不及通知虚拟机就Over的情况下,这个是没有用处的 对,直接断电就不行 |
|
返回顶楼 | |