6

Как создать задержку в Java?

13

Я пытаюсь реализовать что-то на Java и мне нужно сделать задержку в несколько секунд в цикле while.

while (true) {
    if (i == 3) {
        i = 0;
    }

    ceva[i].setSelected(true);

    // Здесь мне нужна задержка

    ceva[i].setSelected(false);

    // И здесь мне нужна задержка

    i++;
}

Я хочу создать шаговый секвенсор. Как мне реализовать задержку в Java?

5 ответ(ов)

2

Используйте Thread.sleep(1000) для того, чтобы приостановить выполнение программы на 1000 миллисекунд (1 секунду).

Пример кода:

try {
    Thread.sleep(1000);
} catch (InterruptedException e) {
    Thread.currentThread().interrupt();
}

Важно отметить, что метод Thread.sleep() может вызывать InterruptedException, поэтому обработка этого исключения является обязательной. В приведенном коде при возникновении исключения мы заново устанавливаем статус прерывания потока, вызывая Thread.currentThread().interrupt(). Это полезно для корректной обработки прерываний в многопоточных приложениях.

0

Вы можете использовать следующий метод для приостановки выполнения программы на заданное количество миллисекунд:

public static void wait(int ms) {
    try {
        Thread.sleep(ms);
    } catch (InterruptedException ex) {
        Thread.currentThread().interrupt();
    }
}

После определения этого метода вы сможете вызывать его в любом месте вашего кода, например:

wait(1000);

Этот вызов остановит выполнение программы на 1000 миллисекунд (или 1 секунду). Обратите внимание на то, что метод wait обрабатывает исключение InterruptedException, которое может произойти, если поток, который ждёт, будет прерван. В случае прерывания мы устанавливаем статус потока в прерванный с помощью Thread.currentThread().interrupt(), что позволяет корректно обработать такое событие.

0

Вам необходимо использовать вызов Thread.sleep().

Дополнительную информацию вы можете найти здесь: https://docs.oracle.com/javase/tutorial/essential/concurrency/sleep.html

0

Чтобы использовать метод Thread.sleep(100);, нужно помнить, что время указывается в миллисекундах.

Вот пример кода, который демонстрирует использование этого метода:

public class SleepMessages {
    public static void main(String args[])
        throws InterruptedException {
        String importantInfo[] = {
            "Лошади едят овес",
            "Кто-то ест овес",
            "Маленькие ягнята едят плющ",
            "И козленок тоже будет есть плющ"
        };

        for (int i = 0; i < importantInfo.length; i++) {
            // Пауза на 100 миллисекунд
            Thread.sleep(100);
            // Вывод сообщения
            System.out.println(importantInfo[i]);
        }
    }
}

В этом примере программа будет выводить сообщения из массива importantInfo, делая паузу в 100 миллисекунд между выводами. Если вам нужно изменить длительность паузы, просто поменяйте значение в Thread.sleep(), передавая нужное количество миллисекунд.

0

Я понимаю, что это очень старая публикация, но это может помочь кому-то:

Вы можете создать метод, который позволит вам легко приостанавливать выполнение программы. Например, вы можете использовать pause(1000) или любое другое значение в миллисекундах:

public static void pause(int ms) {
    try {
        Thread.sleep(ms);
    } catch (InterruptedException e) {
        System.err.format("InterruptedException : %s%n", e);
    }
}

Этот метод нужно разместить прямо перед public static void main(String[] args) внутри класса. Для вызова метода просто используйте pause(ms), заменив ms на необходимое количество миллисекунд, на которое нужно приостановить выполнение. Таким образом, вам не придется каждый раз вставлять весь блок try-catch, когда вы хотите приостановить выполнение.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь