Чтение из System.In в многопоточностиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Чтение из System.In в многопоточности

Сообщение Anonymous »

У меня следующая проблема:
  • метод 1, который продолжает читать из System.in и отправлять его через Socket
  • Метод 2, который читает из System.in только тогда, когда в нем возникает ошибка.
Когда у меня возникает проблема в методе 2, Мне приходится дважды нажать ENTER, потому что даже при закрытии сокета readLine() для метода 1 уже выполнялся, поэтому сначала он читает строку для метода 1, а затем принимает входные данные для метода 2.
Что я могу сделать в этом случае?
Что мне делать в этом случае? p>
OBS: Я знаю, что в этом примере я могу сделать устройство чтения свойством класса. Сделано так, чтобы было легче понять
public class App {

public void method1() {
new Thread(() -> {
String line;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
while (!socket.isClosed() && line = bufferedReader.readLine() != null) {
//Default activity
}
}).start();
}

public void method2() {
try {
//Another Loop Activity
} catch (Exception e) {
socket.close();
String line;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
line = bufferedReader.readLine();
//Error activity
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... ltithreads
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»