ABOUT ME

코딩 복습하고 공부하는 기록

Today
Yesterday
Total
  • 데몬 쓰레드(daemon thread)
    공부/Java 2024. 5. 9. 16:31

    데몬 쓰레드(daemon thread)

     

    - 일반 쓰레드(non-daemon thread)의 작업을 돕는 보조적인 역할을 수행

    - 일반 쓰레드가 모두 종료되면 자동적으로 종료된다. (보조할 쓰레드가 사라짐)

    - 가비지 컬렉터, 자동저장, 화면 자동갱신 등에 사용된다.

    - 무한루프와 조건문을 이용해서 실행 후 대기하다가,

      특정조건이 만족되면 작업을 수행하고 다시 대기하도록 작성한다.

    ※ setDaemon(boolean on)은 반드시 start()를 호풀하기 전에 실행되어야 한다.

       그렇지 않으면 IllegalThreadStateException이 발생한다.

     

    예제

    public void run() {
    	while(true) {
        	try {
            	Thread.sleep(3 * 1000);	// 3초마다
            } catch(InterruptedException e) {}
            
            // autoSave의 값이 true면 autoSave() 호출
            if(autoSave) autoSave();
        }
    }

    위 예제는 3초마다 autoSave의 값이 true일 때, autoSave()를 호출하는 데몬 쓰레드다.

    무한루프여도 이건 데몬 쓰레드기 때문에 일반 쓰레드가 종료되면 자동적으로 종료된다.

     

    '공부 > Java' 카테고리의 다른 글

    sleep(), interrupt()  (0) 2024.05.10
    쓰레드의 상태와 실행제어  (0) 2024.05.09
    쓰레드 그룹  (0) 2024.05.08
    쓰레드의 우선순위  (0) 2024.05.08
    싱글쓰레드와 멀티쓰레드  (0) 2024.05.07
Designed by Tistory.