🏎️💨 안녕하세요 이서에요. 이번 포스팅에서는 데몬 스레드에 대해서 포스팅 하려 해요😆.
자바(Java)에서 데몬 스레드(Daemon Thread)
는 일반 스레드와는 다른 특성을 가지는 스레드에요. 데몬 스레드는 백그라운드에서 동작하며, 주로 서비스 스레드의 보조 역할을 수행하거나 특정 작업을 주기적으로 처리하기 위한 목적으로 사용해요. 이러한 데몬 스레드는 프로그램이 종료될 때 자동으로 종료되며, 명시적으로 종료시키지 않아도 돼요.
setDaemon(true)
메서드를 호출하여 해당 스레드를 데몬 스레드로 설정할 수 있어요.Thread daemonThread = new Thread(() -> {
while (true) {
// 주기적인 작업 수행
// ...
}
});
daemonThread.setDaemon(true); // 데몬 스레드로 설정
daemonThread.start(); // 스레드 시작
System.out.println(Thread.currentThread().getName() + " Thread 시작");
Thread daemonThread = new Thread(() -> {
try {
System.out.println(Thread.currentThread().getName() + " Thread 시작");
Thread.sleep(5000);
System.out.println(Thread.currentThread().getName() + " Thread 종료");
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}, "MyThread");
daemonThread.setDaemon(true);
daemonThread.start();
Thread.sleep(1000);
System.out.println(Thread.currentThread().getName() + " Thread 종료");
main Thread 시작
MyThread 시작
main Thread 종료
// MyThread 종료 메시지 출력이 안되었어요.
데몬 스레드는 백그라운드에서 동작하여 주 스레드(main 스레드)를 보조하거나 특정 작업을 처리하는 유용한 개념이에요. 하지만 주의를 기울여야 할 점도 많아요. 메인 스레드가 종료되면 데몬 스레드도 함께 종료되므로 종료 조건을 명확히 설정해야 해요. 스레드 간의 안전성과 동기화 문제도 고려해야 할 거에요. 올바른 용도와 적절한 사용으로 데몬 스레드는 성능 향상과 백그라운드 작업 관리를 효율적으로 수행할 수 있어요. 데몬 스레드에 대한 개념을 잘 숙지하여 효율적이고 성능적으로 우수한 애플리케이션을 만드시길 바라요😎.