데몬 스레드란 무엇인가요?
데몬 스레드는 백그라운드에서 실행되며, 주 스레드의 작업을 돕는 보조 스레드입니다. 주 스레드가 종료되면 데몬 스레드도 함께 종료됩니다. 대표적인 예로 가비지 컬렉터가 있습니다. 데몬 스레드는 주로 시스템 이벤트 처리 및 백그라운드 작업을 담당합니다.
데몬 스레드의 생성 방법은 어떻게 되나요?
Java에서 데몬 스레드를 생성하는 방법은 두 가지가 있습니다.
Thread
클래스의setDaemon(true)
메소드를 호출하여 데몬 스레드로 설정하는 방법.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
를 전달하여 데몬 스레드를 생성할 수 있습니다.
댓글