Как паралельно отображать обратный отсчет и ожидать ввод в консоль?

Необходимо что бы это происходило в разных потоках и как только ввод в консоль поступает отсчет прекращался. Код ниже работает не корректно. Что исрпавить?

public class Main  {

static BufferedReader br;

public static void main(String[] args) throws IOException {
    br = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Please enter data: ");

    NewThread nt = new NewThread(br);
    Thread newThread = new Thread(nt);
    newThread.start();
    br.readLine();
}


 class NewThread implements Runnable {

BufferedReader br;

 public NewThread(BufferedReader br) {
     this.br = br;
 }
 @Override
 public void run() {
     int count = 10;
     try {
     while (!br.ready()) {
         System.out.println(count);
         Thread.sleep(1000);
         count--;
     }
         } catch (IOException | InterruptedException e) {
             e.printStackTrace();
         }

 }
 }

Ответы (0 шт):