Um servidor não-bloqueador com java.io

Todo mundo sabe que o java IO ébloqueioe o java NIO ésem bloqueio. No IO você terá que usar o padrão thread por cliente, no NIO você pode usar um thread para todos os clientes.

Agora minha pergunta segue: é possível fazer umasem bloqueio design usando a API Java IO. (não NIO)

Eu estava pensando em um padrão como esse (obviamente muito simplificado);

        List<Socket> li;
        for (Socket s : li) {
            InputStream in = s.getInputStream();
            byte[] data = in.available();
            in.read(data);
            // processData(data); (decoding packets, encoding outgoing packets
        }

Observe também que o cliente sempre estará pronto para ler dados.

Quais são suas opiniões sobre isso? Isso será adequado para um servidor que deve conter pelo menos algumas centenas de clientes sem problemas de desempenho importantes?

questionAnswers(1)

yourAnswerToTheQuestion