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