Я должен сказать, что я новичок в Java. Я использую Eclipse. Я хочу выполнить следующий сценарий и не смог найти, как это сделать:Явный асинхронный ввод и вывод текста
Пока программа java запускает ее, выводит текст на консоль, я также хочу иметь возможность вводить текст и обрабатывать его, не блокируя вывод ожидая ввода.
Предположим, что это:
-thread 1 выводит число на консоль каждую секунду
-thread 2 прослушивает вход
(Код макет)
//**Thread 1:**
int incrementBy = 0;
for (int i = 0; i < 1000; i++) {
i = i + incrementBy;
//Pause for 1 seconds
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
System.out.println("TEXT OUTPUT INTERUPTED");
}
//Print text
System.out.println(i);
}
//**Thread 2:**
String myIncrement = System.console().readLine();
(Now process the input and change the incrementBy var in Thread 1)
Прямо сейчас в моей программе я использую 1 поток для ввода и еще один для вывода. Но я могу легко изменить дизайн. Все, что я мог найти, было чем-то вроде сервера и клиента, я хотел бы сохранить код в одном месте. И я в настоящее время не знаю, как сделать графический интерфейс с текстовым полем для вывода и одним для ввода.
Вы можете порекомендовать что-нибудь, пожалуйста?
Спасибо, пользователь3046986, ваш ответ почти такой же, как мой подход, моя проблема была исключением, вызванным плохой кодировкой именно там, где я просил ввода, и из-за моего прошлого опыта я подпрыгнул до конца, что консоль лань не разрешай. Ваш ответ заставил меня лучше взглянуть на мой код. Также спасибо за ключевые слова, я обязательно проверю их. –