Изучение простых методов таймера с помощью циклов For в Java

В Java таймеры необходимы для выполнения задач через определенные промежутки времени или после определенной задержки. Одним из распространенных способов реализации таймеров является использование циклов for. В этой статье блога мы рассмотрим различные методы создания простых таймеров с использованием циклов for и предоставим примеры кода для каждого метода.

Метод 1: использование Thread.sleep()

public class TimerExample {
    public static void main(String[] args) {
        int delay = 1000; // 1 second delay
        int repetitions = 5; // Number of repetitions

        for (int i = 0; i < repetitions; i++) {
            try {
                Thread.sleep(delay);
                System.out.println("Timer: " + (i + 1));
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

Этот метод использует метод Thread.sleep()для приостановки выполнения программы на указанную задержку. Цикл выполняет заданное количество раз, печатая текущее значение таймера.

Метод 2: использование System.currentTimeMillis()

public class TimerExample {
    public static void main(String[] args) {
        long startTime = System.currentTimeMillis();
        int delay = 1000; // 1 second delay
        int repetitions = 5; // Number of repetitions

        for (int i = 0; i < repetitions; i++) {
            long currentTime = System.currentTimeMillis();
            while (currentTime - startTime < delay) {
                currentTime = System.currentTimeMillis();
            }
            System.out.println("Timer: " + (i + 1));
            startTime = currentTime;
        }
    }
}

В этом методе мы используем метод System.currentTimeMillis()для получения текущего времени в миллисекундах. Цикл проверяет, меньше ли время, прошедшее с момента последней итерации, задержки, и как только задержка достигнута, он печатает значение таймера.

Метод 3: использование ScheduledExecutorService

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class TimerExample {
    public static void main(String[] args) {
        int delay = 1; // 1 second delay
        int repetitions = 5; // Number of repetitions

        ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);

        for (int i = 0; i < repetitions; i++) {
            final int timerValue = i + 1;
            executor.schedule(() -> {
                System.out.println("Timer: " + timerValue);
            }, i * delay, TimeUnit.SECONDS);
        }

        executor.shutdown();
    }
}

Этот метод использует интерфейс ScheduledExecutorServiceиз пакета java.util.concurrent. Он создает пул потоков с одним потоком и планирует задачи с указанной задержкой с помощью метода schedule(). Каждая задача печатает значение таймера.

В этой статье мы рассмотрели три различных метода создания простых таймеров с использованием циклов for в Java. Первый метод использует Thread.sleep()для введения задержек, второй метод использует System.currentTimeMillis()для измерения временных интервалов, а третий метод использует Интерфейс ScheduledExecutorService. Не забудьте выбрать метод, который лучше всего подходит для вашего конкретного случая использования при реализации таймеров в ваших Java-приложениях.