Daemon Thread
백그라운드 상태에서 대기하고 있다가 처리할 요청이 발생하거나 조건상황이 맞으면 작업을 수행하는 스레드
동일한 프로세스 안에서 다른 스레드의 수행을 돕는 보조적인 스레드로 다른 스레드를 서비스해주면서 데몬스레드가 아닌 스레드가 모두 종료되면 자신도 자동으로 종료됨
대표적으로 가비지 컬렉터나 메인스레드가 있다.
생성은 스레드객체를 생성하고 setDaemon(true)로 설정하면 됨
스레드가 시작하기 전에 설정해야 한다.
일반적으로 데몬스레드는 특정 조건을 만족하면 작업을 수행하고 다시 대기하도록 자성
응용프로그램에서 자동 저장 기능이나 온라인 게임에서 자동으로 데이터를 전송하는 작업을 데몬 스레드로 작성
데몬스레드 안에서 스레드를 작성한다면 이 스레드 역시 데몬 스레드이다
=>다른 스레드가 수행 중이 아니면 자동으로 종료되는 스레드
=>스레드의 역할을 도와주는 보조적인 목적으로 사용
=>start하기 전에 setDaemon메서드를 호출하면 되는데 true값을 설정해주면 됨
문법은 어렵지 않음. 상황을 인지하는 것이 중요함
package java_1028.thread;
public class DaemonThread {
public static void main(String[] args) {
//1부터 10까지를 1초씩 딜레이하면서 출력해주는 스레드
Thread th = new Thread(()->{
for(int i=0;i<10;i++) {
try {
Thread.sleep(1000);
System.out.println(i+1);
} catch (Exception e) {
System.out.println(e.getLocalizedMessage());
}
}
});
//데몬 스레드로 설정-다른 작업이 없으면 자동을 종료.
th.setDaemon(true);
th.start();
try {
Thread.sleep(3000);
System.out.println("메인 종료");
} catch (Exception e2) {}
}
}
1
2
메인 종료
'JAVA' 카테고리의 다른 글
221031 MultiThread 실습 (0) | 2022.10.31 |
---|---|
221031 Thread2. Multi Thread (0) | 2022.10.31 |
221028 Thread (0) | 2022.10.28 |
221028 Stream API (0) | 2022.10.28 |
221028 Lambda (0) | 2022.10.28 |