글
[4주차 기본미션] 데몬스레드 실습
JAVA/[학습단] #혼공자
2019. 10. 30. 13:14
안녕하세요🙂
4주차 기본미션은 데몬스레드 실습인데요.
교재 내용 중 '직접 해보는 손코딩'으로 실습을 진행해 볼게요☺️
(P.550)
우선 데몬스레드가 무엇인지 개념부터 정리해 볼까요!
데몬스레드는 위 정리내용과 같이 주 스레드의 작업을 돕는 보조적인 역할을 하는 친구예요.
그렇기 때문에, 주 스레드가 종료된다면 데몬스레드도 자동적으로 강제종료됩니다.
코딩을 하며 좀 더 자세히 살펴볼까요
AutoSaveThread.java ⬇︎
public class AutoSaveThread extends Thread{
public void save() {
System.out.println("작업내용저장 ");
}
@Override
public void run() {
while(true) {
try {
Thread.sleep(1000);
System.out.println("1초 일시정지 ");
} catch (InterruptedException e) {
break;
}
save();
}
}
}
DaemonExample.java ⬇︎
public class DaemonExample {
public static void main(String args[]) {
AutoSaveThread autoSaveThread = new AutoSaveThread();
autoSaveThread.setDaemon(true);
autoSaveThread.start();
try {
Thread.sleep(5000);
System.out.println("5초 일시정지 ");
} catch (InterruptedException e) {
}
System.out.println("메인스레드 종료 ");
}
}
DaemonExample.java 의 코드 중
autoSaveThread.setDaemon(true); 부분이 데몬스레드를 생성해주는 코드입니다.
참조객체명.setDaemon(true); 으로 우리는 데몬스레드를 생성할 수 있어요.
📍데몬 스레드를 생성하며 한가지 주의할 점은!
start() 메소드보다 setDaemon(true)메소드가 먼저 호출 되어야 해요.
그렇지 않으면 IllegalThreadStateException이 발생합니다!
'JAVA > [학습단] #혼공자' 카테고리의 다른 글
[5주차 선택미션] Map 컬렉션 실습 (0) | 2019.11.04 |
---|---|
[5주차 기본미션] 컬렉션 프레임워크 키워드 정리 (0) | 2019.11.04 |
[4주차 선택미션] 멀티스레드 생성 (0) | 2019.10.29 |
[3주차 기본미션] 혼공노트 활용샷 인증하기 (0) | 2019.10.24 |
[3주차 선택미션] 포장 값 비교 (0) | 2019.10.24 |