SeouliteLab

[Java/자바] 프로그램 1초마다 반복 실행하기 본문

프로그래밍

[Java/자바] 프로그램 1초마다 반복 실행하기

Seoulite Lab 2024. 3. 7. 08:58

Java 프로그램에서 일정한 간격으로 작업을 반복 실행해야 할 때가 있습니다. 이를 위해 Java에서는 여러 방법을 제공합니다. 아래에서는 여러 예제를 통해 Java에서 1초마다 반복 실행하는 방법을 살펴보겠습니다.

예제 1: TimerTask를 사용한 반복 실행

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

public class RepeatTaskExample {
    public static void main(String[] args) {
        Timer timer = new Timer();
        
        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                System.out.println("반복 실행 중...");
            }
        };
        
        timer.scheduleAtFixedRate(task, 0, 1000); // 1초마다 실행
    }
}

Timer 및 TimerTask 클래스를 사용하여 일정한 간격으로 작업을 반복 실행하는 방법입니다. scheduleAtFixedRate 메서드를 사용하여 일정한 간격으로 작업을 실행할 수 있습니다.

예제 2: ScheduledExecutorService를 사용한 반복 실행

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class RepeatTaskExample {
    public static void main(String[] args) {
        ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
        
        Runnable task = () -> {
            System.out.println("반복 실행 중...");
        };
        
        executor.scheduleAtFixedRate(task, 0, 1, TimeUnit.SECONDS); // 1초마다 실행
    }
}

ScheduledExecutorService를 사용하여 작업을 반복 실행하는 방법입니다. scheduleAtFixedRate 메서드를 사용하여 일정한 간격으로 작업을 실행할 수 있습니다.

예제 3: Timer 및 TimerTask를 이용한 반복 실행 (Java 8 이전 버전)

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

public class RepeatTaskExample {
    public static void main(String[] args) {
        Timer timer = new Timer();
        
        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                System.out.println("반복 실행 중...");
            }
        };
        
        timer.schedule(task, 0, 1000); // 1초마다 실행
    }
}

Java 8 이전 버전에서는 Timer 및 TimerTask 클래스를 사용하여 작업을 반복 실행할 수 있습니다.

예제 4: Executors 및 ScheduledExecutorService를 이용한 반복 실행 (Java 8 이전 버전)

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class RepeatTaskExample {
    public static void main(String[] args) {
        ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
        
        Runnable task = () -> {
            System.out.println("반복 실행 중...");
        };
        
        executor.scheduleAtFixedRate(task, 0, 1, TimeUnit.SECONDS); // 1초마다 실행
    }
}

Java 8 이전 버전에서는 Executors 및 ScheduledExecutorService를 사용하여 작업을 반복 실행할 수 있습니다.

예제 5: Thread.sleep을 이용한 반복 실행

public class RepeatTaskExample {
    public static void main(String[] args) {
        while (true) {
            System.out.println("반복 실행 중...");
            try {
                Thread.sleep(1000); // 1초간 일시 정지
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

Thread.sleep을 사용하여 일정한 간격으로 작업을 반복 실행하는 방법입니다. 단, 이 방법은 싱글 스레드 환경에서만 사용 가능합니다.

예제 6: java.util.Timer를 이용한 반복 실행 (Java 8 이전 버전)

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

public class RepeatTaskExample {
    public static void main(String[] args) {
        Timer timer = new Timer();
        
        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                System.out.println("반복 실행 중...");
            }
        };
        
        timer.schedule(task, 0, 1000); // 1초마다 실행
    }
}

Java 8 이전 버전에서는 java.util.Timer를 사용하여 작업을 반복 실행할 수 있습니다.