본문 바로가기

Programming/JAVA

CTRL+C를 누르거나 프로그램 종료 시 특정 작업 수행 하기

CTRL+C를 누르거나 프로그램 종료 시 특정 작업 수행 하기

컨트롤+씨 키를 누르면 작업 수행 도중 프로그램이 종료 되어 버리므로 어떤 자원을 사용하고 있었다면 종료하지 못한 채 프로그램이 끝나버림으로서 추후 문제가 발생할 수도 있습니다.

Runtim 클래스의 addShutdownHook 메소드는 프로그램 종료시에 수행 할 쓰레드를 JVM에 알려주는 역할을 합니다. 즉 프로그램이 종료 되기전에 자원을 반환해야 하는 경우(Database 연결, File Close)가 있다면 여가에서 Thread를 만들어 처리를 하시면 됩니다.


public class Shutdown implements Runnable{
       
        public void run() {
                //만약 CTRL+C 키가 눌리어 지지 않으면 프로그램이 종료시 호출 됩니다.
                System.out.println("프로그램이 종료하게 되어  자원을 반환 합니다.");
        }

        public static void main(String[] args) throws Exception {
                Runtime r = Runtime.getRuntime();
               
                //프로그램 종료시(CTRL+C를 누르는 경우도 해당)실행 할 쓰레드를 JVM에 알려 줍니다.
                r.addShutdownHook(new Thread(new Shutdown()));
               
                //1초 간격으로 "PRESS CTRL+C to EXIT"라는 문자열을 출력 합니다.
                for(int i=0; i<20; i++) {
                        Thread.sleep(1000);
                        System.out.println("PRESS CTRL+C to EXIT");
                }
        }
}


[결과 : 실행 중 CTRL+C키를 누르세요~]
D:\강의자료\자바기본\예제>java Shutdown
PRESS CTRL+C to EXIT
PRESS CTRL+C to EXIT
PRESS CTRL+C to EXIT
프로그램이 종료하게 되어  자원을 반환 합니다. 

 

'Programming > JAVA' 카테고리의 다른 글

WebLogic서버 감시 데몬  (0) 2008.04.28
싱글톤(Singleton)을 만들자~~  (0) 2008.04.28
외부 프로그램 실행 하기  (0) 2008.04.28
메모리 사용량 확인  (0) 2008.04.28
System 환경 읽어 오기  (0) 2008.04.28