Broadly speaking, there are two ways to handle concurrent requests to a server. Threaded servers use multiple concurrently-executing threads that each handle one client request, while evented servers run a single event loop that handles events for all connected clients.
To chose between the threaded and evented approaches you need to consider the load profile of the server. This post describes a simple mathematical model for reasoning about these load profiles and their implications for server design.
also: various links
code
div
cmx zwrwld pnn-rcde snfst wlffmrgnthlr wndrmrk oots sbnrmlt dswl xkcd rfwrld ndrd
trash