JAVA Thread sleep демонстрация отсчета
Хочу вывести отсчет до выполнения события, пользователю на экран(пока что в system.out.println) выполнил, такой код, получаю однократное написание 60 секунд. как сделать, чтоб каждую секунду было обновление отсчета?
Thread run = new Thread(new Runnable() {
public void run() {
while(true){
int i = 60;
while (i>0){
System.out.println("Remaining: "+i+" seconds");
try {
i--;
Thread.sleep(60000);
sendEmail();
} catch (InterruptedException ex) {
}}
}
}
});
run.start();
Ответы (1 шт):
Автор решения: BccHnw
→ Ссылка
sleep на одну секунду между сообщениями на экран, после шестидесяти таких sleep запускается нужный метод. Не совсем точно (набегут микронакладные), но, думаю, в данной задаче это терпимо.
И InterruptedException лучше не гасить внутри вечного цикла, иначе нормальными средствами этот thread не остановить.
Thread run = new Thread(new Runnable() {
public void run() {
try {
while(true){
int i = 60;
while (i > 0) {
System.out.println("Remaining: "+i+" seconds");
i--;
Thread.sleep(1000);
}
System.out.println("Sending e-mail");
sendEmail();
}
}
catch (InterruptedException ex) {
// ok, terminating
}
}
});
run.start();