как прервать вызов scanner.nextline ()

В SO есть много тем о том, как прервать чтение system.in, но я ищу здесь какой-то совет о том, как лучше всего кодировать то, чего я пытаюсь достичь.

у меня естьgetlogin() метод, который должен сделать следующее: попросить пользователя ввести необходимые данные среды входа в систему, если через 6 секунд пользователь не введет правильное значение ("жить" или же "тестовое задание") затем установите переменную userlogin в "тестовое задание" и верните его звонящему.

Я выбрал следующий подход дляgetlogin() реализация:

запустить два потока, которые делают следующее:

thread1 создает объект сканера, затем вызываетscanner.nextline() и в зависимости от пользовательского ввода установить переменнуюuserlogin, Прерывает поток 2 перед выходом.thread1thread2 ждет 6 секунд и если после этогоuserlogin еще не установлен, затем установите значение по умолчанию дляuserlogin, Прерыванияthread1 перед выходом.thread2

присоединитьсяthread2 остановить главноеThread от возвращенияuserlogin как ноль

возврат userlogin

Проблема, с которой я столкнулся, заключается в том, чтоscanner.nextline() не прерывается, когдаthread2 звонкиthread1.interruptвот почему я не присоединяюсьthread1 на шаге 2 в качестве основногоThread будет висеть Есть ли способ получитьthread1 завершить послеthread2 прерывает это? Или же этот подход полностью излишним и есть гораздо более простой способ достижения контракта?

Ответы на вопрос(4)

Ваш ответ на вопрос