Есть одна нить ждущая консольный ввод, другая пытается ее завершить и не может.
Вопрос:
существует ли способ заставить завершиться вызов 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)