데몬스레드

컴퓨터/Java 2008. 7. 13. 16:33 Posted by 유스~*

데몬스레드에 대해 자바의정석책 설명으로는 약간 부족한면을 알게 되어서 글을 써봅니다. ㅋㅋㅋ


데몬스레드로 변경할 경우 책에서는 메인스레드가 종료시에 데몬스레드가 같이 종료하는걸로 표현되어있습니다.


 그리하여 제 설명도 메인스레드가 종료할때 데몬스레드에게 종료를 지시해서 종료시킨담에 메인스레드가 종료하는걸로 설명드렸습니다.


하지만.. 제 테스트결과 그게 아닌것을 알게 되었습니다.


스레드가 일반스레드, 데몬스레드 2종류인것을 알고 계실겁니다


테스트는 메인스레드에서 t1(데몬스레드),t2(일반스레드) 2개의 스레드를 생성해서 동작해보았습니다.


그리하여 메인스레드 종료시 t2 스레드가 계속 작동할 때 t1 스레드가 과연 종료될것인가?


그 결과는 종료가 안되었습니다. 즉 메인스레드가 t1스레드를 종료시키는게 아니라는 말입니다.


메인스레드가 종료되고 t2 스레드가 종료하자 t1스레드가 종료하는 결과를 얻게 되었습니다.


결론은 데몬스레드의 종료는 일반스레드가 모두 종료시 JVM에 의해서 종료 된다