Threadpool ou trocentas treads?

Pessoal é o seguinte, preciso fazer um servidor de chat. Independente de onde esse servidor irá rodar, preciso que ele suporte o máximo de usuarios ao mesmo tempo sem gerar delay nas respostas.

Usarei socket.
Para escrever para os usuarios tudo bem, uso demanda e uma thread apenas, minha duvida é nos readers.

Threadpool atrasa as respostas? (velocidade é um fator importante)
2000 Treads escutando o cliente, uma para cada cliente conectado zoua tudo? Quanto?
2000 Treads, uma para cada cliente conectado zoua tudo, mas é mais rapido q pool? …depende da maquina?
Threadpool será melhor sempre?
Se for um server fraco devo usar Threadpool, se for um server Megazord uma thread para cada?

O número máximo de threads em um processo é determinado pelo sistema operacional e pela quantidade de memória disponível. Não se aconselha que um processo tenha mais de 100-200 threads, porque:
a) Cada thread gasta pelo menos a quantidade de memória relativa a um stack próprio (para o Java, 128K por thread, ou mais se você alterar a opção -Xss);
b) Cada thread tem de ficar inscrita em uma estrutura especial do sistema operacional, gastando recursos até quando está inativa;
c) E outros problemas mais.

Nunca use “trocentas” threads; de preferência, use pools, e/ou I/O assíncrono.

O chat é um caso em que I/O assíncrono é excelente, porque você nem precisa de uma conexão constante. Você talvez precisasse de uma thread para cada conexão se você tivesse muito poucas conexões, e cada conexão gastasse muitos recursos computacionais, o que obviamente não é o caso para um chat.

Obrigado thingol, vou acabar retirando algumas cosias q estava imaginando e usando I/O assíncrono mesmo =)