JDK1.3介紹了java.lang.Runtime class的addShutdownHook()方法。如果你需要在你的程序關閉前采取什么措施,那么關閉鉤子(shutdown hook)是很有用的。
要加關閉鉤子(shutdown hook),需要先創建一個java.lang.Thread 類的實例,把它作為addShutdownHook()方法的參數。因為關閉鉤子(shutdown hook)簡短而扼要的,所以用匿名嵌套類很適合。
下面是簡單的關閉鉤子,它打印出"shutting down":
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
System.out.println("shutting down");
}
});
虛擬機關閉時,它會調用線程的start()函數。
除了加關閉鉤子(shutdown hook)外,你也可以通過對前一個注冊線程的引用,調用方法注銷鉤子。記住:為了注銷鉤子,你必須有它的引用,這樣匿名類在注銷后才不會發生作用。
如果在你的程序關閉時,你需要做一些工作,清除工作,釋放資源等等,那么你會發現關閉鉤子(shutdown hook)很有用。