본문 바로가기
카테고리 없음

데몬 스레드(보조 스레드) 사용법 & 예제

by kangs' tong 2023. 8. 20.

데몬 스레드란 무엇인가요?

데몬 스레드는 백그라운드에서 실행되며, 주 스레드의 작업을 돕는 보조 스레드입니다. 주 스레드가 종료되면 데몬 스레드도 함께 종료됩니다. 대표적인 예로 가비지 컬렉터가 있습니다. 데몬 스레드는 주로 시스템 이벤트 처리 및 백그라운드 작업을 담당합니다.

데몬 스레드의 생성 방법은 어떻게 되나요?

Java에서 데몬 스레드를 생성하는 방법은 두 가지가 있습니다.

  1. Thread 클래스의 setDaemon(true) 메소드를 호출하여 데몬 스레드로 설정하는 방법.
  2. Thread 인스턴스를 생성할 때 생성자의 파라미터로 true를 전달하여 바로 데몬 스레드로 생성하는 방법.
Thread thread1 = new Thread(() -> {
    // 데몬 스레드의 작업 내용을 구현합니다.
});
thread1.setDaemon(true); // 데몬 스레드로 설정합니다.

Thread thread2 = new Thread(() -> {
    // 데몬 스레드의 작업 내용을 구현합니다.
}, true); // 바로 데몬 스레드로 생성합니다.

데몬 스레드 예제

다음은 데몬 스레드를 사용하여 로그를 주기적으로 출력하는 예제입니다.

public class DaemonThreadExample {

    public static void main(String[] args) {
        Thread daemonThread = new Thread(() -> {
            try {
                while (true) {
                    System.out.println("데몬 스레드 동작 중...");
                    Thread.sleep(1000); // 1초마다 로그 출력
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });
        daemonThread.setDaemon(true); // 데몬 스레드로 설정

        daemonThread.start();

        try {
            // 주 스레드를 일시정지하여 데몬 스레드가 계속 동작하도록 함
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("주 스레드 종료");
    }
}

위 예제에서는 주 스레드가 3초 동안 일시정지됩니다. 그 동안 데몬 스레드는 1초마다 로그를 출력하게 됩니다. 주 스레드가 종료되면 JVM은 데몬 스레드를 강제로 종료시키게 됩니다.

정리

데몬 스레드는 백그라운드에서 실행되는 보조 스레드이며, 주 스레드의 작업을 돕습니다. 주 스레드가 종료되면 데몬 스레드도 함께 종료되며, Thread 클래스의 setDaemon(true) 메소드를 호출하거나 생성자의 파라미터로 true를 전달하여 데몬 스레드를 생성할 수 있습니다.

댓글