데몬 스레드 (daemon thread)
: 주 스레드의 작업 돕는 보조적 역할을 수행하는 스레드이다
주로 백그라운드에서 작업을 수행한다. 주 스레드가 종료될 때 자동으로 함께 종료된다
예) 워드프로세서 자동저장, 미디어플레이어의 동영상 및 음악 재생, 가비지 컬렉터
데몬스레드를 만들기 위해서는 주 스레드가 데몬이 될 스레드의 setDaemon(true)를 호출하면 된다
데몬 스레드를 사용할 때 주의할 점은
스레드가 이미 시작된 후에는 데몬 스레드로 변경할 수 없다
따라서 이 메서드는 스레드를 시작하기 전에 etDaemon(true) 사용하여 호출해야한다
그리고 데몬 스레드는 프로그램이 종료될 때 강제로 멈출 수 있으므로 데이터베이스 업데이트, 파일처리 같은 중요한 작업은 일반 스레드로 작업하는 것이 좋다
| 구분 | 데몬 스레드 (Daemon Thread) | 일반 스레드 (Non-Daemon Thread) |
| 종료 시점 | 모든 일반 스레드가 종료되면, 데몬 스레드는 자동으로 종료됨 | 모든 일반 스레드가 종료되기 전까지 프로그램은 종료되지 않음 |
| 주요 역할 | 백그라운드에서 보조 작업 수행 (예: 로그, 백업, 가비지 컬렉션 등) | 주 스레드가 직접적으로 실행하고 관리하는 중요한 작업 수행 |
| 종료 제어 | 주 스레드에 의해 종료됨. 스스로 종료되는 경우는 드물어요. | 스스로 종료될 수 있으며, 종료 시 프로그램 종료 여부에 영향을 줌 |
'Java' 카테고리의 다른 글
| Java_컬렉션 자료구조_컬렉션 프레임워크 (0) | 2024.10.17 |
|---|---|
| Java_스레드풀(threadPool), 스레드풀의 종료 (0) | 2024.10.17 |
| Java_스레드의 안전종료 (0) | 2024.10.17 |
| Java_Wait() notify() 이용한 스레드 제어 (1) | 2024.10.17 |
| Java_스레드 상태 (0) | 2024.10.17 |