Я хочу отложить выполнение чего-то, в соответствии с установкой таймера обратного отсчета, который будет "делать что-то" через определенное время.
Я хочу, чтобы остальная часть моей программы продолжала работать, пока я жду, поэтому я попытался создать свой собственный Thread
, который содержал одноминутную задержку:
public class Scratch {
private static boolean outOfTime = false;
public static void main(String[] args) {
Thread countdown = new Thread() {
@Override
public void run() {
try {
// wait a while
System.out.println("Starting one-minute countdown now...");
Thread.sleep(60 * 1000);
// do the thing
outOfTime = true;
System.out.println("Out of time!");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
countdown.start();
while (!outOfTime) {
try {
Thread.sleep(1000);
System.out.println("do other stuff here");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
Хотя это сработало, более или менее, казалось, что должен быть лучший способ сделать это.
После некоторых поисков я нашел несколько таких вопросов, но они действительно не затрагивают то, что я пытаюсь сделать:
- Как планировать запуск задачи с периодическими интервалами?
- Как я могу запускать мой TimerTask каждый день 2 часа вечера
- Как выполнять определенную задачу каждый день в определенное время с помощью ScheduledExecutorService?
- Java выполнить задачу с количеством попыток и тайм-аутом
Мне не нужно ничего сложного; Я просто хочу сделать что-то через определенное время, оставив всю оставшуюся часть программы.
Как мне следует планировать одноразовую задачу "делать что-то"?