안녕하세요🙂

 

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이 발생합니다!

설정

트랙백

댓글