title: How to ask user for input to console (BufferedReader) and display countdown? Need to do it in two threads
body: <p>Once user entered data timer stops and BuferredReader closed.
  If 10 seconds passed and no input - BuferredReader closed and user unable to make input. Below code works, but not 100% correct.
  Please suggest any solution.</p>
  
  <pre><code>public class Main  {
  
  public static void main(String[] args) throws IOException {
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      NewThread nt = new NewThread(br);
      Thread newThread = new Thread(nt);
      newThread.start();
  
  
      System.out.print("Please enter data: ");
      System.out.println("");
  
       String value = br.readLine();
      System.out.println(value);
      nt.shutdown();
  }
  }
  
  class NewThread implements Runnable {
  
  volatile BufferedReader br;
   volatile boolean running ;
  
   public NewThread(BufferedReader br) throws IOException {
       this.br = br;
       this.running = br.ready();
   }
   @Override
   public void run() {
       int count = 10;
       try {
       while (!running) {
           System.out.print("("+count +")"+ '\r');
           Thread.sleep(1000);
           count--;
           if (count &lt;0){
               shutdown();
           }
       }
           } catch (InterruptedException | IOException e) {
               e.printStackTrace();
           }
   }
   public void shutdown () throws IOException {
       running=true;
       br.close();
   }
  
   }
  </code></pre>