컨트롤+씨 키를 누르면 작업 수행 도중 프로그램이 종료 되어 버리므로 어떤 자원을 사용하고 있었다면 종료하지 못한 채 프로그램이 끝나버림으로서 추후 문제가 발생할 수도 있습니다.
Runtim 클래스의 addShutdownHook 메소드는 프로그램 종료시에 수행 할 쓰레드를 JVM에 알려주는 역할을 합니다. 즉 프로그램이 종료 되기전에 자원을 반환해야 하는 경우(Database 연결, File Close)가 있다면 여가에서 Thread를 만들어 처리를 하시면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class Shutdown implements Runnable{ public void run(){ System.out.println("system down"); } 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); } } } | cs |
[결과 : 실행 중 CTRL+C키를 누르세요~]
PRESS CTRL+C to EXIT
PRESS CTRL+C to EXIT
PRESS CTRL+C to EXIT
프로그램이 종료하게 되어 자원을 반환 합니다.
[출처] 오라클자바커뮤니티 - http://www.oraclejavanew.kr/bbs/board.php?bo_table=LecJava&wr_id=408
정말 감사합니다 ㅠㅠ 이런 황금같은 정보를 주시다니 ... 프레임에서 X종료 아이콘을 눌를때 반환을 해야하나 매우 걱정했는데 이런 황금같은 정보가 있어서 다행입니다 ...
'자바' 카테고리의 다른 글
synology에 git 설정중 나에게 필요한부분 (0) | 2015.12.10 |
---|---|
자바 프로퍼티 예제 (출처 http://notgivuphil.tistory.com/505#rp ) (0) | 2015.10.23 |
메소드 ,참조변수 관리 진짜 힘드네 ... (0) | 2015.08.14 |
BuildConfig 애러시.... (0) | 2015.07.29 |
안드로이드 main.xml 구현시 실수했던거 (0) | 2015.07.29 |