Ciao a tutti, ho un problema con un'applicazione server che sto sviluppando in java.
Il software deve mantenere online in una sorta di chat più utenti contemporaneamente, e inizialmente avevo realizzato per ogni utente 2 thread, uno fermo bloccato sulla read() dal socket e l'altro pronto a fare una write quando richiesto.
Ecco, 2 thread per utente...
I problemi sono iniziati quando la mia chat ha oltrepassato i 1000 utenti, e la mia fedora ha deciso che non riusciva più a creare thread.

Ho provato a eliminare i thread con le SocketChannel e le unblocking, ma la performance è scarsa per non dire pessima, la cpu lavora più di 5 volte tanto.
Risulta anke a voi un utilizzo così massiccio di cpu per le socket unblocking?
Metodi alternativi?
Esempi di codici funzionanti su molte connessioni?