JAVA/기본API 클래스 알아보기

Timer / TimerTask

별초롱언니 2025. 5. 15. 17:55

Timer / TimerTask 클래스는 개발자가 원하는 특정한 시간에 코드를 실행하거나 특정 시간 간격으로 반복되는 작업을 할 수 있게 해 줍니다. 

 

사용하는 방법은 먼저 TimerTask를 상속받는 새로운 클래스를 선언해야 합니다. 

그리고 TimerTask 클래스의 run 추상 메서드를 자신이 하고 싶은 작업으로 오버라이딩 합니다. 

그리고 Timer 객체를 생성하고 원하는 시간을 파라미터로 작성합니다. 

Timer 객체를 생성할 때 생성자의 파라미터로 true를 쓰는 것은 프로그램이 종료될 때 객체가 사라지는 것을 의미합니다. true를 쓰지않으면 프로그램이 종료되었는데도 Timer 객체가 남아있기 때문에 true를 작성하는 것이 좋습니다. 

package chapter10;

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 exam78 {

	public static void main(String[] args) 
	throws InterruptedException {
		Timer t = new Timer(true);
		TimerTask w1 = new Work1();
		TimerTask w2 = new Work2();
		t.schedule(w1,  3000);
		t.schedule(w2,  4000);
		Thread.sleep(4000);
		System.out.println("모든 작업 종료");
		
	}

}

 

Time

task 클래스를 상속받은 Work1, Work2 인스턴스를 각각 생성합니다. 마찬가지로 Timer객체도 생성한 다음 schedule 메서드를 이용해서 시간을 설정합니다. Line27에서는 w1을 3초 뒤에 실행하라는 의미이고 Line28은 w2를 1초 뒤에 실행하라는 의미입니다. Line29의 코드는 원하는 작업이 실행되기까지 기다리는 동안 프로그램이 다 종료되어 버릴 수 있기 때문에 총 4초를 기다리는 것을 의미합니다. 실제 실행결과를 보시면 프로그램이 실행되고 1초 뒤에 실행되는 w2가 먼저 실행되고 이어서 3초에 w1이 실행, 그리고 스레드가 기다리는 것을 완료한 4초에서 프로그램이 종료됩니다.  

'JAVA > 기본API 클래스 알아보기' 카테고리의 다른 글

formatting  (0) 2025.05.15
Wrapper  (0) 2025.05.15
Scanner  (0) 2025.05.15
random  (0) 2025.05.15
시간 처리 Date, Calendar2  (0) 2025.05.15