Damon Thread(데몬 스레드), 데몬 스레드 예, setDaemon(), isDaemon()

CODEDRAGON Development/Java

반응형

 

 

Damon Thread(데몬 스레드)

·         주 스레드의 작업을 돕는 보조적인 역할을 수행하는 스레드입니다.

·         주 스레드가 종료되면 데몬 스레드는 강제적으로 자동 종료됩니다. 그 이유는 주 스레드의 보조 역할을 수행하므로 주 스레드가 종료되면 데몬 스레드는 존재의 의미가 없어지기 때문입니다. 이를 제외하면 데몬 스레드는 일반 스레드와 차이가 없습니다.

 

 

 

데몬 스레드 예

·         주 스레드에 해당되는 워드프로세스, 미디어 플레이어, JVM이 종료되면 같이 종료되게 됩니다.

·         워드프로세스의 자동 저장

·         미디어 플레이어의 동영상 및 음악 재생

·         JVM의 가비지 컬렉터

·        

 

 

setDaemon()

스레드를 데몬으로만들기 위해서는 주 스레드가 데몬이 될 스레드의 setDaemon(true)메소드를 호출해주면 됩니다.

AutoSaveThread thread = new AutoSaveThread();

thread.setDaemon(true);

thread.start();

 

start() 메소드가 호출되고 난 후 setDaemon(true) 메소드를 호출하면 IllegelThreadStateException이 발생하기 때문에 start() 메소드 호출 전에 setDaemon(true)을 호출해야 합니다.

autoSaveThread.start();

autoSaveThread.setDaemon(true);

Exception in thread "main" java.lang.IllegalThreadStateException

 

 

 

isDaemon()

현재 실행중인 스레드가 데몬 스레드인지 아닌지를 구별하는 방법으로 isDaemon()메소드의 리턴값을 확인하면 됩니다.

데몬 스레드일 경우 true를 반환합니다.

 

반환값

설명

true

데몬 스레드(보조 스레드)

false

메인 스레드(주 스레드)