Estoy trabajando en un MUD en Java. Leo la entrada del jugador cada tic, pero estoy usando Scanner
que usa operaciones de bloqueo. Quiero tener una entrada sin bloqueo.Consola de teclado concurrente/no bloqueada entrada
He visto el paquete nio
que tiene una clase Selector
, pero no estoy seguro de cómo usarlo con respecto a System.in
. Me imagino que definitivamente lo necesitaré una vez que ejecute un servidor, pero por ahora todo está fuera de línea.
He intentado extender la clase principal desde Applet
y anulando keyDown
, pero eso solo significaba que la entrada ya no se aceptaba después de la primera. Claro, ya no estaba bloqueando nada, pero no había más información. keyDown
nunca más me llamaron, supongo.
¿Quizás los hilos se pueden interrumpir incluso cuando están ejecutando operaciones de bloqueo?
Gracias por cualquier idea sobre este problema.
enchufes no-bloqueo (redes) no se realiza de la misma forma que no bloqueante IO, al menos no en la mayoría de entornos. – Textmode