Notice
Recent Posts
Recent Comments
Link
관리 메뉴

데브마우스

[Java] Timer/TimerTask 클래스 정리 본문

Java/Java: 문법 정리

[Java] Timer/TimerTask 클래스 정리

데브마우스 2024. 1. 14. 23:04

Timer/TimerTask 클래스는 무엇인가요?

Timer/TimerTask 클래스는 특정한 시간에 코드를 실행시키거나 특정 시간 간격으로 코드를 실행하게 만듭니다.

 

Timer/TimerTask 예제 코드는 아래와 같습니다.

import java.util.Timer;
import java.util.TimerTask;

class Work1 extends TimerTask {
	@Override
	public void run() {
		System.out.println("work1을 실행합니다.");
	}
}

class Work2 extends TimerTask {
	@Override
	public void run() {
		System.out.println("work2을 실행합니다.");
	}
	
}

public class Main {
	public static void main(String[] args) throws InterruptedException {
		Timer t = new Timer(true);
		TimerTask w1 = new Work1();
		TimerTask w2 = new Work2();
		int thousand = 1000;
		t.schedule(w1, 5 * thousand); // 5초
		t.schedule(w2, 3 * thousand); // 3초
		
		Thread.sleep(4 * thousand); // 종료하지 않고 작업 4초 대기
		System.out.println("모든 작업 종료");
		/*
		 * 출력: 
		 * work2를 실행합니다.
		 * 모든 작업 종료
		 * 
		 * 이유:
		 * w2는 3초 뒤에 실행되고
		 * w1는 5초 뒤에 실행되지만 
		 * Thread.sleep이 4초간 대기 시키기때문에 
		 * w1이 실행되지 않습니다.
		 */
	}
}

 

Timer/TimerTask 주 사용처는 어디인가요?

반복적으로 실행되어야 하는 프로그램의 업데이트 부분에서 주로 사용됩니다.