как бы мне прервать консольный ввод ???
От: Илья К.  
Дата: 16.03.04 15:05
Оценка:
Есть одна нить ждущая консольный ввод, другая пытается ее завершить и не может.

Вопрос:
существует ли способ заставить завершиться вызов in.readLine() из другой нити ?

так получаем in:

  BufferedReader in = new BufferedReader(new InputStreamReader(System.in));


нить 1: читает что-то из потока System.in

  public void run()
  {
    for(;;)
    {
       //...

       String cmd = in.readLine(); // здесь блокируется до нажатия [Enter]

       //...
    }
  }


нить 2: пытается завершить нить 1

   in.close(); // виснет здесь до завершения функции in.readLine (для потоков не System.in в первой нити вылетает IOException)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.