首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

怎么在关闭时进行清理工作

2012-08-21 
如何在关闭时进行清理工作我们常常会遇到这样的情况,当程序运行结束的时候,要将一些资源连接进行清理,释放

如何在关闭时进行清理工作
我们常常会遇到这样的情况,当程序运行结束的时候,要将一些资源连接进行清理,释放内存,或者是删除一些临时文件。通常这并不会有什么问题,我们只需要在程序的结束部分写上清理代码即可。

但当我们处在多线程的环境下时,我们并不能确切的知道,何时所有的线程都已结束工作,程序准备退出。 又或者我们的程序中有一些守护线程,需要通过特殊的命令才能停止。那么此时,我们如何才能保证当所有的线程都结束,程序退出的时候,我们的清理代码被执行呢?

在Java中,有一种非常简单的方法,通过给Runtime提供shutdown hook来实现这样的需求:

        try {            // Register shutdown hook            if (useShutdownHook) {                if (shutdownHook == null) {                    shutdownHook = new CatalinaShutdownHook();                }                Runtime.getRuntime().addShutdownHook(shutdownHook);            }        } catch (Throwable t) {                //TODO        }

热点排行