데몬 쓰레드란?
일반적인 쓰레드의 작업을 돕는 보조적인 역할을 수행하는 쓰레드
- 일반적인 쓰레드의 작업이 종료되면 데몬 쓰레드도 함께 작업이 종료된다.
- ex) GC, 워드프로세서의 자동저장, 화면 자동갱신
사용법
데몬 쓰레드의 활용
0 부터 10 까지의 수를 출력하는 프로그램이다.
이때 출력하는 시간은 1초로 지정을하고 5초가 될때 autoSave값을 true로 변환하고
1초마다 값을 해당 값을 체크하여 autoSave 값이 true 인지 체크하는 프로그램
public class DeamonThreadEx implements Runnable{
static boolean autoSave = false;
public static void main(String[] args) {
Thread th = new Thread(new DeamonThreadEx());
th.setDaemon(true);
th.start();
for (int i=0;i<10;i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
System.out.println(i);
if(i==5) {
autoSave = true;
}
}
System.out.println("프로그램을 종료합니다...");
}
@Override
public void run() {
while (true) {
try {
Thread.sleep(1*1000);
} catch (InterruptedException e) {
}
if (autoSave) {
autoSave();
}
}
}
public void autoSave() {
System.out.println("작업이 자동 저장 되었습니다.");
}
}
만약 데몬 쓰레드로 지정하지 않았다면?
프로그램이 종료되어도 해당 작업은 끝나지 않는다.
'Java > Java' 카테고리의 다른 글
(JAVA) 쓰레드의 실행제어 - interrupt(), interrupted() (0) | 2020.01.25 |
---|---|
(JAVA) 쓰레드의 실행제어 - sleep (0) | 2020.01.25 |
(JAVA) Integer.parseInt 내부 뜯어보기 (0) | 2020.01.22 |
(JAVA) String.equals() 내부 뜯어보기 (0) | 2020.01.21 |
(JAVA) 쓰레드 우선순위 (0) | 2020.01.21 |