YJ의 새벽
JAVA ( 데몬 쓰레드 ) 본문
- 데몬쓰레드
--일반 쓰레드의 작업을 돕는 보조적인 역할을 수행.
--일반 쓰레드가 모두 종료되면 자동적으로 종료.
-- ex)) 가비지 컬렉터, 자동저장, 화면 자동갱신 등등..에 사용 .
--무한루프와 조건문을 이용해서 실행 후 대기하다가,
특정조건이 만족되면 작업을 수행하고,
다시 대기하도록 작성.
boolean isDaemon () : 쓰레드가 데몬쓰레드인지 확인, 참이면 true 를 반환
void setDaemon( boolean on) : 쓰레드를 데몬쓰레드 , 사용자 쓰레드로 변경
매개변수 on 을 true 로 지정하면 데몬쓰레드가 된다.
**setDaemon(boolean on) 은 반드시 start() 호출 전에 실행되여야함.
그렇지않으면 오류발생.
EX )))) 데몬쓰레드 예제.
public class Example implements Runnable {
static boolean autoSave = false;
public static void main(String[] args) {
Thread thread = new Thread( new Example()); // Thread ( Runnable r )
thread.setDaemon(true); // 데몬으로 설정. 꼭 해줘야함.!!
thread.start();
for(int i=1; i <= 10; i++) {
try {
Thread.sleep(1000); //1초마다
}catch(InterruptedException e) {
e.printStackTrace();
}
System.out.println(i);
if( i==5 ) { // 5초이후 데몬쓰레드 true .
autoSave = true;
}
}
System.out.println("프로그램종료");
}
@Override
public void run() { // 데몬쓰레드의 run() 재정의
while(true) {
try {
Thread.sleep( 3 * 1000); //3초마다
}catch(InterruptedException e) {
e.printStackTrace();
}
if(autoSave) { // autoSave() 호출
autoSave();
}
}
}
public void autoSave() {
System.out.println("작업파일이 자동저장되었습니다");
}
}
'SelfStudy > JAVA' 카테고리의 다른 글
JAVA ( 쓰레드의 동기화 ) (0) | 2023.02.08 |
---|---|
JAVA (쓰레드의 메서드) (0) | 2023.02.07 |
JAVA (쓰레드 thread) (0) | 2023.02.07 |
JAVA (애너테이션) (0) | 2023.02.06 |
JAVA (열거형) (0) | 2023.02.06 |
Comments