Java - 6. Thread: Daemon Thread

godkimchichi·2020년 9월 22일
0

고급자바

목록 보기
16/47

Daemon Thread 데몬 스레드

  • 다른 일반 스레드의 작업을 돋는 보조적인 역할을 하는 스레드
  • 일반 스레드가 모두 종료되면 데몬 스레드는 자동으로 종료

작성방법

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

쓰임새

  • 자동저장기능과 같이 알아서 되는 기능들

예제: T09

1단계: 자동 저장하는 스레드 생성

class AutoSaveThread extends Thread {
  public void save() {
    System.out.println("작업 내용 저장");
  }

  @Override
  public void run() {
    while (true) {
      try{
        Thread.sleep(3000);
      }catch (InterruptedException e) {
        e.printStackTrace();
      }
      save(); // 저장 기능 호출
    }
  }
}

2단계: 데몬스레드 설정하여 실행

public class T09_ThreadDaemonTest {
  public static void main(String[] args) {
    Thread autoSave = new AutoSaveThread();

    // 데몬스레드로 설정하기 => start()메서드 호출 전에 설정해야 한다.
    autoSave.setDaemon(true); // 설정없으면 default: 일반 스레드
    autoSave.start();

    try {
      for (int i = 1; i <= 20; i++) {
        System.out.println("작업" + i);
        Thread.sleep(1000);
      }
    } catch (InterruptedException e) {
      e.printStackTrace();
    }

    System.out.println("메인 쓰레드 종료...");
  }
}
profile
갈 길이 멀다

0개의 댓글