whitz 2021. 12. 9. 12:17

< 데몬 스레드 >

 

- 주 스레드의 작업을 돕는 보조적인 역할을 수행하는 스레드

- 메인 스레드 종료하면 데몬 스레드도 같이 종료

 

 

① setDamon(true)

 

- 데몬 스레드로 만들기 위해서 주 스레드가 데몬이 될 스레드를 호출하면 된다

- start() 메소드 호출 전에 setDamon(true)를 호출해야 한다

 

 

② 예제

 

- 1초 주기로 save() 메소드 자동 호출하도록 AutoSaveThread 작성하고

- 메인 스레드가 3초 후 종료되면 AutoSaveThread도 같이 종료되도록 데몬 스레드를 만듦

 

public class DemonExample {
	public static void main(String[] args) {
		AutoSaveThread autoSaveThread = new AutoSaveThread();
		autoSaveThread.setDaemon(true);
		autoSaveThread.start();
		
		try {
			Thread.sleep(3000);
		} catch(InterruptedException e) {}
	
	
		System.out.println("메인 스레드 종료");
	}
}
public class AutoSaveThread extends Thread{
	public void save() {
		System.out.println("작업 내용을 저장함.");
	}

	@Override
	public void run() {
		while(true) {
			try {
				Thread.sleep(1000);
			} catch(InterruptedException e) {
				break;
			}			
			save();
		}		
	}
}