본문 바로가기

Programming/JAVA

멀티 스레드(7) - 데몬 스레드 2

 

 

 

 

앞서 살펴본 데몬 스레드를 확인해볼 수 있는 예제를 살펴보도록 하겠습니다. 아래의 예제는 1초 주기로 save( ) 메서드가 자동 호출되도록 AutoSaveThread를 작성하고, 메인 스레드가 3초 후 종료되면 AutoSaveThread도 같이 종료될 수 있도록 AutoSaveThread를 데몬 스레드로 만들었습니다. 

 

// 1초 주기로 save() 메서드를 호출하는 데몬 스레드
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();
		}
	}
}

 

 

public class ExampleMain {
	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("메인 스레드 종료");
	}
}

/* 출력
작업 내용 저장
작업 내용 저장
메인 스레드 종료
*/