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 |
메인 스레드(주 스레드) |
'Development > Java' 카테고리의 다른 글
문자 스트림의 특징, 문자 스트림의 구조, 바이트 스트림과 문자 스트림 차이-바이트 스트림의 데이터 송수신 특성, 바이트 스트림을 이용하여 파일에 문자 저장시 문제점, 문자 스트림은 해.. (0) | 2018.12.11 |
---|---|
InputStream의 주요 메서드 (0) | 2018.12.11 |
ReentrantLock과 Condition, 동기화 메소드 (0) | 2018.12.11 |
synchronized블럭 vs ReentrantLock과 같은 lock클래스 (0) | 2018.12.11 |
lock()와 unlock( )를 통한 동기화블록 (0) | 2018.12.11 |