Why Events Are a Bad Idea (for high-concurrency servers) (2003) [pdf]
people.eecs.berkeley.edu
people.eecs.berkeley.edu
Thus it makes /far/ more sense to have a number of threads (dependent on the hardware capacity and how readily the problem can be divided to independent or very loosely coupled tasks) which poll message queues than it does to have a completely independent thread for every event.
Languages based around message passing are thus the obvious choice for this type of programming.
and what is this describing? "...a completely independent thread for every event."
"Languages based around message passing are thus the obvious choice for this type of programming." Ruby? Obj-c?
Other programmers might have different choices. There's no reason you couldn't use a language that has threads to implement the N threads with event queues model, or something similar for that language if it has shared memory. If the language of choice lacks it you might be able to use a similar multi-process (externally) load-balanced model.
Actor-based programming model, where actors are Erlang-ish very lightweight green threads, running on a hardware thread per processor. Communicating by fast message passing.
So, like with every technology, there was some exuberance and overuse of a novel formalism which shows up in this paper: "scales to 100,000 threads", it proclaims. Not much later, interest in "green threading" and "lightweight concurrency" grew as a way to get some of the architectural benefits of being asynchronous while mitigating waste from large numbers of threads, and consensus shifted towards mixing the approaches, which seems to have converged on the few-threads, message-queue-per-thread approach.
Choose the right tool for the job.
My web server uses multi-threaded events.
So both!