Demon Thread
- 프로세스의 모든 일반 쓰레드가 종료될 때 남은 작업에 상관없이 같이 종료되는 쓰레드
- 가비지 컬렉터, 자동 저장 등 프로그램 종료 시점에 맞춰 같이 종료되어야 하는 작업에 사용됨
public static void main(String[] args) {
Thread commonThread = new Thread(() -> {
String threadName = Thread.currentThread().getName();
IntStream.range(0, 3).forEach(idx -> execute(threadName));
System.out.println(threadName + " 종료");
});
commonThread.setName("commonThread");
Thread demonThread = new Thread(() -> {
String threadName = Thread.currentThread().getName();
IntStream.range(0, 5).forEach(idx -> execute(threadName));
System.out.println(threadName + " 종료");
});
demonThread.setDaemon(true);
demonThread.setName("demonThread");
try {
commonThread.start(); // 일반 쓰레드 실행
Thread.sleep(2000); // 1초 뒤 데몬 쓰레드 실행
demonThread.start();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
System.out.println("mainThread 종료");
}
public static void execute(String threadName) {
System.out.println(threadName + " 실행");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
'Java' 카테고리의 다른 글
애너테이션 (0) | 2022.09.06 |
---|---|
Thread의 동기화 처리 (0) | 2022.09.04 |
Thread 의 동시성과 병렬성 (0) | 2022.09.01 |
JVM - Java Virtual Machine (0) | 2022.08.30 |
자바 소스 코드의 실행 과정 (0) | 2022.08.30 |