[Java] 데몬 쓰레드

준우·2022년 5월 24일
1

Java

목록 보기
20/30
post-thumbnail

데몬 쓰레드(Daemon Thread)란?

리눅스, 유닉스 계열의 운영체제에서 백그라운드로 동작하는 프로그램을 데몬(Daemon)이라고 한다. 자바에서 이런 데몬과 유사하게 동작하는 쓰레드를 데몬 쓰레드(Daemon Thread)라고 한다. 데몬 쓰레드는 자바 프로그램을 만들 때 백그라운드에서 특별한 작업을 처리하게 하는 용도로 만든다. 일반 쓰레드(main 등)가 모두 종료되면 강제적으로 종료되는 특징이 있다.

데몬 쓰레드 만들기

데몬 쓰레드를 만드는 방법은 쓰레드에 데몬 설정을 하는 것이다.

thread.setDeamon(true);

    // Runnable을 구현하는 DaemonThread클래스를 작성
    public class DaemonThread implements Runnable {

        // 무한루프안에서 0.5초씩 쉬면서 데몬쓰레드가 실행중입니다를 출력하도록 run()메소드를 작성
        @Override
        public void run() {
            while (true) {
                System.out.println("데몬 쓰레드가 실행중입니다.");

                try {
                    Thread.sleep(500);

                } catch (InterruptedException e) {
                    e.printStackTrace();
                    break; //Exception발생시 while 문 빠찌도록 
                }
            }
        }

        public static void main(String[] args) {
            // Runnable을 구현하는 DaemonThread를 실행하기 위하여 Thread 생성
            Thread th = new Thread(new DaemonThread());
            // 데몬쓰레드로 설정
            th.setDaemon(true);
            // 쓰레드를 실행
            th.start();

            // 메인 쓰레드가 1초뒤에 종료되도록 설정. 
            // 데몬쓰레드는 다른 쓰레드가 모두 종료되면 자동종료.
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }   
            System.out.println("메인 쓰레드가 종료됩니다. ");    
        }   
    }

🙏 Reference

0개의 댓글