IT 언어/Java

[Java] Thread -2 (데몬 스레드, 사용자 스레드)

비둘기멋지게발차기 2024. 2. 20. 22:46

 

 

 

 

 목차

  1. 사용자 스레드 vs 데몬 스레드
  2. 데몬 스레드의 생성자와 메소드
    1. 생성자
    2. 메소드
  3. 예제

 

 

1. 사용자 스레드 vs 데몬 스레드

1) 사용자 스레드

  • main 스레드가 사용자 스레드이다

 

2) 데몬 스레드

  • 일반 스레드의 작업을 돕는 보조 역할을 하는 스레드
  • 일반 스레드가 모두 종료되면 자동적으로 종료된다 (보조할게 없으니까)
  • 자동저장, 화면 자동 갱신 등에 사용된다
  • 무한루프와 조건문로 사용하며, 대기 상태로 있다가 조건문에 해당되면 작업을 수행하고 다시 대기 상태로 전환된다

 

 

 

2. 데몬 스레드의 메소드

1) 메소드

  • boolean isDaemon() : 이 스레드가 데몬 스레드인지 확인 (맞으면 true)
  • void setDaemon(boolean on) : 스레드를 데몬 스레드 또사용자 스레드로 변경 (매개변수 on을 true로 지정하면 데몬 스레드가 된다)

**setDaemon() 메소드는 start() 를 호출하기 전에 실행해야 한다. 그렇지 않으면 (IllegalThreadStateException 발생)

 

 

 

 

3. 예제

autoSave가 true가 되면 데몬 스레드 실행
20번째 코드가 실행되면 데몬 스레드 실행(= 3초마다 자동저장)