개발 무지렁이

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

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초뒤에 텍스트를 출력하고 이를 두번까지 반복하고
  메인 스레드가 끝남과 동시에 끝난다.
Comments