Я хочу записать цикл в Java, который ели запускают и идут как это:
while (!x){
//wait one minute or two
//execute code
}
Я хочу сделать это так, чтобы это не израсходовало системные ресурсы. То, что на самом деле продолжается в коде, - то, что он переходит к веб-сайту и проверкам, чтобы видеть, сделано ли что-то, если он не сделан, он должен ожидать другая минута, пока он не проверяет снова, и когда его сделанный он просто идет дальше. Их так или иначе, чтобы сделать это в Java?
Используйте Thread.sleep (длинный миллис)
.
Заставляет текущий выполняющийся поток спать (временно прекращать выполнение) на указанное количество миллисекунд, в зависимости от точности и точности системных таймеров и планировщиков. Поток не теряет права собственности ни на какие мониторы.
Одна минута будет (60 * 1000) = 60000
миллисекунд.
Например, этот цикл будет печатать текущее время каждые 5 секунд:
try {
while (true) {
System.out.println(new Date());
Thread.sleep(5 * 1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
Если период сна становится слишком большим для int
, явно вычислить в long
(например, 1000L
).
Вы можете использовать Таймер
Timer timer = new Timer();
timer.schedule( new TimerTask() {
public void run() {
// do your work
}
}, 0, 60*1000);
Когда придет время
timer.cancel();
Чтобы выключить его.
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
executor.schedule(yourRunnable, 1L, TimeUnit.MINUTES);
...
// when done...
executor.shutdown();