자바 프로그램 에 종료 이벤트 응답 추가

하나의 완전한 자바 응용 프로그램 은 일반적으로 최소한 하나의 응용 프로그램의 끝 점 이 있어 야 한다.일반 프로그램 에 있어 시스템 개발 자 는 수요 와 개인의 선 호 에 따라 프로그램 종료 위치 에서 System.exit(0)또는 System.out(-1)을 추가 하여 프로그램 을 종료 하거나 이 명령 을 추가 하지 않 아 프로그램 이 자 연 스 럽 게 끝 날 때 까지 실 행 됩 니 다.예 를 들 어 다음 의 전형 적 인 코드 패키지 untitled 14;  /**   * This application is to demo how an applcation end   */   public class Test {   public Test() {}   public static void main(String[] args) {   Test test1 = new Test();   //.................   System.out.println("hello world");   //Do something before system exit   System.exit(0);//이 코드 를 쓰 지 않 고 프로그램 이 자 연 스 럽 게 끝 날 수도 있다.}간단 한 응용 시스템 에 대해 서 는 System.exit(0)코드 가 실행 되 기 전에 프로그램 이 종료 되 기 전에 해 야 할 일 을 추가 할 수 있 습 니 다.예 를 들 어 네트워크 연결 을 닫 고 데이터 베 이 스 를 닫 는 등 입 니 다.그러나 비교적 복잡 한 다 중 스 레 드 응용 에 있어 스 레 드 운행 상태 가 복잡 하기 때문에 우 리 는 프로그램 이 언제 끝 날 지 예측 하기 어렵다.어떻게 응용 프로그램 이 사건 을 끝 낼 때 우리 가 해 야 할 일 을 처리 할 수 있 습 니까?이것 은 자바 가 응용 프로그램의 종료 에 대한 이벤트 처리 메커니즘 을 사용 했다.현재 프로그램 대상 에 대한 획득,자 바 는 Runtime 정적 방법:Runtime.getRuntime()을 통 해 Runtime 의 void addShutdown Hook(Thread hook)법 을 통 해 자바 가상 컴퓨터 에 shutdown 갈고리 이 벤트 를 등록 합 니 다.그러면 프로그램 이 끝 날 때 스 레 드 hook 을 실행 합 니 다.실제 응용 할 때,프로그램 이 완성 되 기 전에 해 야 할 일 들 을 스 레 드 hook 을 통 해 직접 완성 하면 됩 니 다.********************************************************************************************************************************************************************************************************************************************/package untitled 14;  import java.util.*;   import java.io.*;   /**   * This application is used to demo how to hook the event of an application   */   public class Untitled1 {   public Untitled1() {   doShutDownWork(); }/**********************************************************프로그램 종료 날 짜 를 d:\\\t.log 파일*******************************************************************************************************************************************************************************************\t.log");     System.out.println("Im going to end");      fw.write("the application ended! " + (new Date()).toString());      fw.close();     }     catch (IOException ex) {     }    }   }); *********************************************************************************************************************************************************************************************************=new Untitled 1();  long s = System.currentTimeMillis();   for (int i = 0; i < 1000000000; i++){//여기에 처리 코드 를 추가 합 니 다}long se=System.currentTimeMillis();  System.out.println(se - s); }}위 프로그램 에서 Runtime.getRuntime().addShutdown Hook(new Thread()이벤트 감청 을 추가 하고 시스템 종료 메 시 지 를 캡 처 한 다음 에 우리 가 필요 로 하 는 작업 을 수행 하여 프로그램 을 더욱 튼튼 하 게 하 는 것 을 볼 수 있 습 니 다!

좋은 웹페이지 즐겨찾기