熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java虛擬機關閉鉤子

2022-06-13   來源: Java核心技術 

  javalangRuntim類提供了addShutdownHook(Thread hook)方法用來添加虛擬機關閉的鉤子

  用途

  1應用程序正常退出在退出時執行特定的業務邏輯

  2虛擬機非正常退出比如用戶按下ctrl+c操作系統關閉等在退出時執行必要的挽救措施

  實例

  public class TestOnExit {

  public TestOnExit(){

  doShutDownWork();

  }

  private void doShutDownWork(){

  RuntimegetRuntime()addShutdownHook(new Thread(){

  public void run(){

  Systemoutprintln(application will exit );

  }

  });

  }

  public static void main(String[] args) {

  TestOnExit exit=new TestOnExit();

  long beginTime=SystemcurrentTimeMillis();

  for(int i=;i<;i++){

  try {

  Systemoutprintln(application run the +i+ci);

  Threadsleep();

  } catch (InterruptedException e) {

  eprintStackTrace();

  }

  }

  long endTime=SystemcurrentTimeMillis();

  Systemoutprintln(it speat time is +(endTimebeginTime));

  }

  }

  可以做個測試首先正常運行

  

  執行ctrl+c

  

  然後再試試kill

  但是遇到kill 命令就不行了所以這個東西還是不很穩定可用性不高!

  kill 命令直接就把窗口關掉了很暴力

  我又試了下kill 這個發現是可以的截個圖上來

  

  然後看運行的結果

  

  是執行了鉤子函數的


From:http://tw.wingwit.com/Article/program/Java/hx/201311/27169.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.