Überall, wo ich etwas über java.nio (eben dieses Gemultiplexe) lese, wird empfohlen, dies anstelle von Threads zu benutzen, da pro Thread mindestens 700KB RAM belegt werden. Ebenfalls entfällt der Aufwand der Synchronisierung. Allerdings hat man das Problem, dass die Requests hintereinander, und nicht (praktisch) parallel bearbeitet werden, was zur Folge hat, dass der Server bei längeren Rechenarbeiten (z.B. eine Schleife mit vielen Iterationen) oder auch Datenbankzugriffen komplett hängt. Diese Aktionen müsste dann wiederum doch in Threads (+ Synchronisierung) auslagern und sich ein eigenes Scheduling-API schreiben, das den Weg der Daten Client -> ServerThread -> ExternerThread und umgekehrt (Stichwort Producer/Consumer) steuert.
NIO einzusetzen ist also etwas komplex, und wenn genug RAM zur Verfügung steht bzw. die Anwendung sowieso keine hohen Lasten aushalten muss, kann man ruhig auf Threads zurückgreifen und sich Arbeit sparen. 150 Chatter sind nicht viel, sagen wir, ein Chatter postet durchschnittlich alle 7 Sekunden etwas, das wären dann 21 Anfragen pro Sekunde, 21 * 900KB (Thread + Objekte) sind 19 MB Speicher, ich denke, damit sollte man gut hinkommen.