I am doing a MMORPG with approx. 5000 online users ( living on multiple servers ), for my app i go with a single thread and i am fine.
Incidentally, we use many many threads for our MMOG engine. To support 5000 users we'd probably have a total of 25-50, maybe 3 or 4 times that many. (but then again we'd probably have that spread out over several servers in the cluster
Server design != single-player console-game development. In servers, threads are usually a very good thing. For instance, they let you easily tune and prioritise different parts of a pipeline in a context-dependent fashion (i.e. create dynamic - as opposed to static - prioritisation schemes).
IMHO it would be bending over backwards to run any serious MMOG on one thread (by "serious" I exclude e.g. single-player or small multiplayer games like chess where there are thousands of simultaneous games being served by a single server), and with no real benefit that I can see (overall). It's extremely difficult to maintain - and you HAVE to do synchronization anyway! Since you say you've got more than a single server, you absolutely must be handling synch issues betwixt servers...and even if you've only got one server, you'd have to work pretty hard to make sure there were no race-conditions between the clients and their interaction with the server (it can certainly be done, but why would you bother?).
AFAICS, Cas's argument for single-threading is that an exclusive single-player game can be statically scheduled with no loss of functionality, and at the benefit of making runtime characteristics entirely deterministic (although you do have to do some extra work if you want to *guarantee* determinism - you have to de-bounce your inputs etc, although this much determinism is rarely needed unless you need to do game recording and playback AFAIAA).
An MMOG is inherently non-deterministic from the outset, and you ALSO cannot afford to statically schedule - unless you happen to be a God (like me
). And even I wouldn't try to do that, even with a very very big paycheque - it could be years and years of pointless pain.
So...I'm intrigued as to why you are using a single thread (well, according to your own quote, you aren't - but lets assume you said "one thread per server") for an MMOG?