Backend/자바

[Java] 보조 역할을 수행하는 데몬(Daemon) 스레드

Gaejirang-e 2023. 8. 13. 21:02

𐂂 데몬 스레드
스레드의 작업을 돕는 보조 역할 스레드
스레드가 종료되면 자동종료, TERMINATED.

스레드를 데몬으로 만들기 위해서,
스레드에서 해당 스레드 객체를 만들어 setDaemon(true);를 호출하면 된다.

🎯 목적: 자동저장 .. 등에 쓰인다.

📜 AutoSaveThread.java

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

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

📜 DaemonExample.java

  public class DaemonExample {
      public static void main(String[] args) {
          AutoSaveThread daemonThread = new AutoSaveThread();
          daemonThread.start();

          try {
              Thread.sleep(3000);
          } catch(InterruptedException e) { }

          System.out.println("주(메인) 스레드 종료");
          //작업 내용을 저장함.
          //작업 내용을 저장함.
          //주(메인) 스레드 종료
      }
  }
🦉 코드 설명

스레드: main 메서드
데몬 스레드: AutoSaveThread.run 메서드

➡️ main 메서드에서 자동저장을 위한 데몬 스레드를 만들고 설정해준다.
   스레드인 main 메서드는 3초후에 텍스트를 출력한뒤 끝나기 때문에,
  데몬 스레드도 처음 1초뒤에 텍스트를 출력하고 이를 두번까지 반복하고
  메인 스레드가 끝남과 동시에 끝난다.