У меня есть поток Java:
class MyThread extends Thread {
  @Override
  public void run() {
    BufferedReader stdin =
        new BufferedReader(new InputStreamReader(System.in));
    String msg;
    try {
      while ((msg = stdin.readLine()) != null) {
        System.out.println("Got: " + msg);
      }
      System.out.println("Aborted.");
    } catch (IOException ex) {
      ex.printStackTrace();
    }
  }
}
}
В другом потоке, как мне отменить вызов stdin.readline() в этом потоке, чтобы этот поток печатал Aborted.? Я пробовал System.in.close(), но это не имеет никакого значения, stdin.readline() по-прежнему блокируется.
Меня интересуют решения без
- ожидание ожидания (потому что это сжигает 100% процессор);
-  sleep (потому что тогда программа не отвечает мгновенно на System.in).
