Sto lavorando su un MUD in Java. Ho letto Ingresso giocatore ogni tick, ma sto usando Scanner
che utilizza le operazioni di blocco. Voglio avere input non bloccanti.Concurrent/non-blocking console input da tastiera
Ho guardato il pacchetto nio
, che ha una classe Selector
, ma non sono sicuro di come usarlo per quanto riguarda System.in
. Immagino che ne avrò sicuramente bisogno una volta che avrò un server, ma per ora tutto è offline.
Ho provato ad estendere la classe principale da Applet
e ignorando keyDown
, ma ciò significava che l'input non era più accettato dopo il primo. Certo, non stavo più bloccando nulla, ma poi non c'era più alcun input. keyDown
non mi hanno mai più chiamato, immagino.
Forse i thread possono essere interrotti anche quando stanno eseguendo operazioni di blocco?
Grazie per qualsiasi comprensione di questo problema.
non bloccanti (networking) non sono fatte allo stesso modo non bloccante IO, almeno non nella maggior ambienti. – Textmode