Вроде, условия задал, а оно не работает. Точнее, даже не начинает работать.
package com.javarush.task.task16.task1617;
/*
Отсчет на гонках
*/
public class Solution {
public static volatile int countSeconds = 3;
public static void main(String[] args) throws InterruptedException {
RacingClock clock = new RacingClock();
Thread clockThread = new Thread(clock);
clockThread.start();
Thread.sleep(3500);
clock.interrupt();
}
public static class RacingClock extends Thread {
public RacingClock() {
start(); }
public void run() {
try{
// 1. Метод run класса RacingClock должен содержать цикл.
// 2. Объект класса RacingClock должен каждую секунду уменьшать значение переменной countSeconds на единицу.
// 3. Метод main должен вызывать Thread.sleep(3500).
// 4. Метод main должен вызывать метод interrupt у объекта clock.
// 5. Если countSeconds равно 3, то программа должна вывести "3 2 1 Марш!".
// 6. Если countSeconds равно 4, то программа должна вывести "4 3 2 1 Прервано!".
Thread current = Thread.currentThread();
while (!current.isInterrupted()) {
Thread.sleep(1000);
countSeconds--;
if(countSeconds == 3) {
for(int i = countSeconds; i > 0; i --){
System.out.print(i + " ");
}
System.out.print("Марш!");
}
if(countSeconds == 4) {
for(int i = countSeconds; i > 0; i --){
System.out.print(i + " ");
}
System.out.print("Прервано!");
}
}
} catch (InterruptedException e) {}
}
}
}