프로세스가 정상 또는 비정상 종료(Ctrl+C)될 때, 자동적으로 실행되는 스레드를 등록할 수 있다.
Runtime 클래스의 public void addShutdownHook(Thread hook) 또는 ublic boolean removeShutdownHook(Thread hook) 를 이용하여 등록 또는 제거할 수 있다.
위 참고링크에서는 윈도우의 작업관리자에서 강제 종료하여도 실행된다고 하였지만, Windows7에서 테스트한 결과 작업관리자에서 강제 종료할 때는 shutdown hook이 실행되지 않는 것을 확인했다.
아래는 간단한 예제이다.
package com.bagesoft.test.runtime; public class ShutdownHookTest { public ShutdownHookTest() { Runtime.getRuntime().addShutdownHook(new ShutdownHookThread()); } public static void main(String[] args) throws InterruptedException { new ShutdownHookTest(); Thread.sleep(10 * 1000); } public class ShutdownHookThread extends Thread { @Override public void run() { System.out.println("ShutdownHookThread 실행"); } } }
'Java' 카테고리의 다른 글
[박혜웅] Eclipse - Disable HTML validation (HTML Problem warning 없애기) (0) | 2012.01.30 |
---|---|
Java Out Of Memory Error (java.lang.OutOfMemoryError) (0) | 2011.11.02 |
[박혜웅] Java Code Conventions (코딩 규칙) (0) | 2011.10.13 |
[박혜웅] Design Patterns in JAVA (0) | 2011.03.19 |
[박혜웅] Install JAVA(JDK) on Linux (0) | 2011.02.25 |