Interestingly, Java 7’s &quot;native non-blocking IO&quot; actually uses exactly that – you have a ServerSocket, and, if a user connects to the server, it spawns a Thread and gives it a normal SocketChannel.