본문 바로가기
개발지식

Java의 java.util.Timer의 schedule 메서드와 scheduleAtFixedRate 메서드의 차이

by hunovator 2024. 2. 23.
반응형

Java에서 java.util.Timer 클래스는 작업을 예약하고 실행하기 위한 기능을 제공합니다. 이 클래스의 schedule 메서드와 scheduleAtFixedRate 메서드는 작업을 예약하는 방법에 있어서 약간의 차이를 보입니다.

1. schedule 메서드


schedule 메서드는 작업을 한 번만 실행하도록 예약합니다. 즉, 지정된 시간 후에 작업이 한 번 실행됩니다.

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

public class ScheduleExample {
    public static void main(String[] args) {
        Timer timer = new Timer();

        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                System.out.println("Task executed once.");
            }
        };

        // 3초 후에 작업 예약
        timer.schedule(task, 3000);
    }
}

2.scheduleAtFixedRate 메서드

scheduleAtFixedRate 메서드는 지정된 시간부터 일정한 간격으로 작업을 실행합니다. 이 메서드는 작업이 예상된 간격에 맞추어 실행되도록 보장합니다.

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

public class ScheduleAtFixedRateExample {
    public static void main(String[] args) {
        Timer timer = new Timer();

        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                System.out.println("Task executed repeatedly at fixed rate.");
            }
        };

        // 1초 후부터 2초 간격으로 작업 예약
        timer.scheduleAtFixedRate(task, 1000, 2000);
    }
}

반응형