4-3. Daemon Thread

zhyun·2020년 9월 22일
0

HighJava

목록 보기
28/67

1.Daemon Thread란?

  • 데몬 스레드다른 일반 스레드(데몬 스레드가 아닌 스레드)의 작업을 돕는
    보조적인 역할을 수행하는 스레드
  • 일반 스레드가 존재할 때만 데몬스레드 존재!!!
  • 일반 스레드가 모두 종료되면 데몬 스레드는 자동으로 종료된다.

2.Daemon Thread 작성방법

  • 데몬 스레드로 설정하기 위해서는 반드시 실행 전(start메서드 호출 전)에
    설정
    해야 한다.
스레드객체.setDaemon(true);
스레드객체.start();

T09_ThreadDaemon

public class T09_ThreadDaemon {
	public static void main(String[] args) {//메인스레드, AutoSaveThread스레드
		
		Thread autoSave = new AutoSaveThread();
		
		//데몬스레드로설정하기 => start()메서드 호출 전에 설정해야 한다.
		autoSave.setDaemon(true);// -> 이 설정을 안하면 '일반 스레드' 하면 '데몬 스레드'
		autoSave.start();
		
		try { //메인쓰레드가 1초에 한번씩 for문 찍음
			for(int i=1; i<=20; i++) { // 작업 20에 메인(일반)쓰레드 죽고 데몬스레드 죽음
				System.out.println("작업 "+i);
				Thread.sleep(1000);
			}
		}catch (InterruptedException ex) {
			ex.printStackTrace();
		}

		System.out.println("메인쓰레드 종료...");
	}
}

자동 저장하는 쓰레드(3초에 한번씩 저장하기)

class AutoSaveThread extends Thread{
	public void save() {
		System.out.println("작업 내용을 저장합니다...");
	}
	
	@Override
	public void run() {
		while(true) {
			try {
				Thread.sleep(3000);//3초
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			save();//저장기능 호출 -> 3초에 한번씩 save()호출
		}
	}
	
}

profile
HI :)

0개의 댓글