Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Как можно в JAVA сделать задержку


Автор: Fly1410 15.7.2006, 16:24
В Delphi есть функция delay(int). Есть ли что-то похожее в JAVA
 smile  

Автор: powerOn 15.7.2006, 16:26
Код

Thread.sleep(1000); // Приостановить текущую нить на секунду
 

Автор: Atum 29.8.2013, 16:20
Добрый день , а если это ресурс который нельзя вот так вот взять и приостановить ...

Например надо делать запрос на удаленный сервер, и если получили 500 ошибку то повторить этот запрос в цикле еще 10 раз с паузой в 10 секунд между запросами , как реализовать без Thread.sleep(1000); ?

Автор: LSD 29.8.2013, 16:34
Таймер.

Автор: Atum 29.8.2013, 16:47
Цитата(LSD @ 29.8.2013,  16:34)
Таймер.

можно пример? smile 

Автор: drkot 29.8.2013, 22:16
Модератор: Сообщение скрыто.

Автор: Samotnik 30.8.2013, 11:01
http://docs.oracle.com/javase/7/docs/api/java/util/Timer.html

Автор: LSD 30.8.2013, 11:17
Цитата(Atum @  29.8.2013,  17:47 Найти цитируемый пост)
можно пример?

Код

    private static final int    attempts = 10;
    private static final Timer  timer    = new Timer();
    private static final Random random   = new Random();

    private static void exec() throws Exception {
        timer.schedule(new MyTask(attempts), 0L);
    }

    private static boolean foo() {
        return random.nextBoolean() &&
               random.nextBoolean() &&
               random.nextBoolean();
    }

    private static class MyTask extends TimerTask {
        private final int runCount;

        private MyTask(int runCount) {
            this.runCount = runCount;
        }

        @Override
        public void run() {
            boolean success = foo();
            if (!success) {
                logger.info("Attempt {} failed", attempts - runCount);
                if (runCount > 1) {
                    TimerTask newTask = new MyTask(runCount - 1);
                    timer.schedule(newTask, 1000L);
                } else {
                    logger.error("Execution failed after " + attempts + " attempts");
                    System.exit(0);
                }
            } else {
                logger.info("Attempt {} success", attempts - runCount);
                System.exit(0);
            }
        }
    }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)