Я работаю над MUD в Java. Я читаю ввод игрока каждый тик, но я использую Scanner
, который использует операции блокировки. Я хочу иметь неблокирующий ввод.
Я смотрел на пакет nio
, который имеет класс Selector
, но я не уверен, как его использовать в отношении System.in
. Я полагаю, что он мне определенно понадобится после запуска сервера, но сейчас все в автономном режиме.
Я пытался расширить основной класс с Applet
и переопределить keyDown
, но это просто означало, что ввод больше не принимался после первого. Конечно, я больше ничего не блокировал, но тогда больше не было ввода. keyDown
мне никогда больше не звонили.
Возможно, потоки могут быть прерваны, даже если они выполняют операции блокировки?
Спасибо за понимание этой проблемы.