On 01/04/11 17.21, Sean Kelly wrote:

On Apr 1, 2011, at 7:49 AM, Jonas Drewsen wrote:

On 01/04/11 01.07, dsimcha wrote:


Again forgive my naiveness, as most of my experience with concurrency is
concurrency to implement parallelism, not concurrency for its own sake.  
Shouldn't
32,000 threads be more than enough for anything?  I can't imagine what kinds of
programs would really need this level of concurrency, or how bad performance on
any specific thread would be when you have this many.  Right now in my Task
Manager the program with the most threads is explorer.exe, with 28.

There doesn't have to be a thread for each socket. Actually many servers have 
very few threads with many sockets each. 32000 sockets is not unimaginable for 
certain server loads e.g. websockets or game servers. But I know it is not that 
common.

Hopefully not at all common.  With that level of concurrency the process will 
spend more time context switching than executing code.

For services where clients spend most time inactive this works. An example could be a server for messenger like clients. Most of the time the clients are just connected waiting for messages. As long as nothing is transmitted no context switching is done.

Or maybe I've misunderstood the reason for the context switching?

/Jonas

Reply via email to