데몬 스레드(Daemon Thread)
- 일반 스레드는 자신의 작업을 수행하도록 되어 있는 반면, 데몬 스레드란 일반 스레드로 부터 요청을 받아 특정 서비스를 수행하는 작업을 한다.
- 즉, 다른 일반 스레드를 돕는 보조적인 역할을 하는 스레드이다.
- 일반 스레드가 모두 종료되면 데몬 스레드도 자동 종료된다.
- 데몬 스레드가 생성한 스레드는 자동으로 데몬 스레드가 된다.
- 예를 들어, 가비지 컬렉터, 워드 프로세스의 자동 저장 등 백그라운드에서 특별한 작업을 처리하는 용도로 사용한다.
Ex006_Daemon Thread >>
더보기
package threadEx;
/*
- 독립 스레드
메인은 프로그램의 시작점이지 종료점은 아니다.
메인 스레드가 종료되어도 독립 스레드의 작업이 완료될 때까지 프로그램은 종료되지 않는다.
- 데몬 스레드
다른 스레드에게 도움을 주기 위한 스레드
메인 스레드가 종료되면 데몬 스레기의 작업이 완료되지 않아도 프로그램은 종료됨.
*/
public class Ex006_Daemon {
public static void main(String[] args) {
MyThread6 t1 = new MyThread6();
MyThread6 t2 = new MyThread6();
MyThread6 t3 = new MyThread6();
// 스레드들 데몬으로 만듦
t1.setDaemon(true);
t2.setDaemon(true);
t3.setDaemon(true);
t1.start();
t2.start();
t3.start();
try {
t1.join(); // 스레드가 종료될 때 까지 대기
t2.join();
t3.join();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("메인 종료...");
}
}
class MyThread6 extends Thread {
@Override
public void run() {
for (int i = 1; i <= 20; i++) {
System.out.println(getName() + " -> " + i);
try {
Thread.sleep(500);
} catch (Exception e) {
}
}
}
}
메인이 종료되면 같이 종료된다.
'쌍용강북교육센터 > 9월' 카테고리의 다른 글
0906_Java : Thread Synchronization 동기화 (0) | 2021.09.07 |
---|---|
0903_Java : Thread Priority 스레드 우선순위 (0) | 2021.09.07 |
0903_Java : Thread 클래스 활용 예제 (0) | 2021.09.07 |
0903_Java : java.lang.Thread 스레드 클래스 (0) | 2021.09.07 |
0902_데이터 모델링 및 설계 (0) | 2021.09.03 |