java.lang.Runtime.addShutdownHook(Thread hook) 方法註冊一個新的虛擬機關閉掛鉤。 Java虛擬機的關機響應於兩種類型的事件:java
一般狀況下,程序退出時的最後一個非守護線程退出時或退出(等價地,System.exit)方法被調用,或安全
虛擬機終止在響應於一個用戶中斷,如打字^ C,或一個全系統的事件,如用戶註銷或系統關閉.spa
關閉鉤子是一個簡單的初始化但還沒有啓動的線程。當虛擬機開始關機順序,將一些未指定的順序啓動全部已註冊的關閉鉤子,讓它們同時運行。當全部的鉤子已經完成,它會而後運行全部uninvoked的終結,若是最終肯定的出口已啓用。最後,虛擬機將暫停。須要注意的是守護線程將繼續運行在關機過程當中,做爲非守護線程,若是關機是經過調用exit方法.線程
如下是聲明java.lang.Runtime.addShutdownHook()方法對象
public void addShutdownHook(Thread hook)
hook -- 一個初始化但還沒有啓動的線程對象事件
此方法不返回一個值。虛擬機
IllegalArgumentException -- 若是指定的鉤已被註冊,或若是它能夠斷定鉤已經運行或已被運行it
IllegalStateException -- 若是虛擬機已是在關閉的過程當中io
SecurityException -- 若是存在安全管理器而且它拒絕的RuntimePermission(「shutdownHooks」)鉤子