Задачу решил, и валидатор пропустил.
Но мне осталось непонятно: поток clock выполняется 10 секунд, но на нем через 3,5 секунды выполняется команда interrupt() - почему он после этой команды продолжает крутить цикл? и я проверял его статус isInterruped == false, isAlive = true.
Зачем же тогда нужен этот метод interrupt() если он не прервал работу потока clock? или он просто нужен чтоб выбросить исключение?
public class Solution {
public static volatile int numSeconds = 10;
public static void main(String[] args) throws InterruptedException {
RacingClock clock = new RacingClock();
//add your code here - добавь код тут
Thread.sleep(3500);
clock.interrupt();
}
public static class RacingClock extends Thread {
public RacingClock() {
start();
}
public void run() {
//add your code here - добавь код тут
String result = "Марш!";
while (numSeconds > 0) {
try {
Thread.sleep(1000);
System.out.print(numSeconds-- + " ");
} catch (InterruptedException e) {
result = "Прервано!";
}
}
System.out.print(result);
}
}
}