Является ли отдельный поток хорошей стратегией для завершения приложения с фоновыми задачами нажатием клавиши? - PullRequest
2 голосов
/ 15 мая 2011

У меня консольное Java-приложение, которое выполняет некоторые задачи в фоновом режиме.Java не поддерживает консоль kbhit () для тестирования, если что-то есть в буфере клавиатуры, и, как я знаю, все чтения и тесты консоли блокируются.

Я собираюсь запустить фоновый поток с помощьючто-то вроде console.readLine (), а затем поставить какой-либо флаг завершения после завершения этого вызова блокировки.Фоновые задачи приложения проверят этот флаг и решат, нужно ли их завершить.

Кстати, мое приложение будет выполнять запись в консоль во время своей работы (вход в систему через logback и т. Д.), Но никогда не будет читать.1006 * Является ли такая стратегия хорошей?

1 Ответ

1 голос
/ 15 мая 2011

вы можете использовать System.in.available()>0, но это только буферизует полные строки (после нажатия клавиши ввода) с консоли

...