[java] 데몬 스레드의 특징은?
-
주 스레드 종료 시 자동 종료: 주 스레드가 종료되면 데몬 스레드도 자동으로 종료됩니다. 이는 데몬 스레드가 주 스레드의 보조 역할을 하는 경우 유용합니다.
-
백그라운드 작업 수행: 데몬 스레드는 백그라운드에서 작업을 처리하는 데 유용합니다. 예를 들어, 시스템 로그를 감시하거나 가비지 컬렉션을 수행하는 등의 작업을 처리할 수 있습니다.
-
우선순위가 낮음: 데몬 스레드는 일반적으로 우선순위가 낮게 설정됩니다. 이는 주 스레드의 작업에 영향을 주지 않도록 하기 위함입니다.
-
I/O 스트림을 닫을 필요가 없음: 데몬 스레드가 자동으로 종료되기 때문에, 해당 스레드에서 사용한 I/O 스트림은 명시적으로 닫을 필요가 없습니다.
데몬 스레드는 setDaemon(true)
메서드를 사용하여 생성됩니다. 주의해야 할 점은, 데몬 스레드는 어떤 작업을 수행하더라도 임의의 시점에 갑작스럽게 종료될 수 있다는 것입니다. 따라서, 주 스레드와 상호작용이 필요한 경우에는 일반 스레드를 사용해야 합니다.
Thread daemonThread = new Thread(new Runnable() {
public void run() {
// 데몬 스레드의 작업 처리
}
});
daemonThread.setDaemon(true); // 데몬 스레드로 설정
daemonThread.start();
데몬 스레드는 백그라운드 작업을 처리하는 경우 유용하며, 주 스레드의 생명 주기에 종속되는 스레드를 구현하기 위해 활용됩니다.
참고 문서: