天天看點

Runtime.addShutdownHook添加鈎子

1 方法含義

void java.lang.runtime.addshutdownhook(thread hook) 用來在jvm中增加一個關閉的鈎子。

當程式正常退出,系統調用system.exit方法或虛拟機被關閉時才會執行添加的shutdownhook線程。其中shutdownhook是一個已初始化但并不有啟動的線程,當jvm關閉時會執行系統中已經設定的所有通過方法addshutdownhook添加的鈎子,當系統執行完這些鈎子後,jvm才會關閉。是以可通過這些鈎子在jvm關閉的時候進行記憶體清理、資源回收等工作。

2 示例代碼

public class testruntimeshutdownhook {

public static void main(string[] args) {

thread shutdownhookone = new thread() {

public void run() {

system.out.println("shutdownhook one...");

}

};

runtime.getruntime().addshutdownhook(shutdownhookone);

runnable threadone = new runnable() {

try {

thread.sleep(1000);

} catch (interruptedexception e) {

e.printstacktrace();

system.out.println("thread one doing something...");

runnable threadtwo = new thread() {

thread.sleep(2000);

system.out.println("thread two doing something...");

threadone.run();

threadtwo.run();

輸出如下:

thread one doing something...

thread two doing something...

shutdownhook one...

原貼位址:http://kim-miao.iteye.com/blog/1662550