Java

Java_데몬 스레드

ssmm95 2024. 10. 17. 14:34

데몬 스레드 (daemon thread) 

: 주 스레드의 작업 돕는 보조적 역할을 수행하는 스레드이다

주로 백그라운드에서 작업을 수행한다. 주 스레드가 종료될 때 자동으로 함께 종료된다

예) 워드프로세서 자동저장, 미디어플레이어의 동영상 및 음악 재생, 가비지 컬렉터 

 

데몬스레드를 만들기 위해서는 주 스레드가 데몬이 될 스레드의 setDaemon(true)를 호출하면 된다 

 

데몬 스레드를 사용할 때 주의할 점은

스레드가 이미 시작된 후에는 데몬 스레드로 변경할 수 없다

따라서 이 메서드는 스레드를 시작하기 전에 etDaemon(true) 사용하여 호출해야한다 

그리고 데몬 스레드는 프로그램이 종료될 때 강제로 멈출 수 있으므로 데이터베이스 업데이트, 파일처리 같은 중요한 작업은 일반 스레드로 작업하는 것이 좋다

 

구분 데몬 스레드 (Daemon Thread) 일반 스레드 (Non-Daemon Thread)
종료 시점 모든 일반 스레드가 종료되면, 데몬 스레드는 자동으로 종료됨 모든 일반 스레드가 종료되기 전까지 프로그램은 종료되지 않음
주요 역할 백그라운드에서 보조 작업 수행 (예: 로그, 백업, 가비지 컬렉션 등) 주 스레드가 직접적으로 실행하고 관리하는 중요한 작업 수행
종료 제어 주 스레드에 의해 종료됨. 스스로 종료되는 경우는 드물어요. 스스로 종료될 수 있으며, 종료 시 프로그램 종료 여부에 영향을 줌