Steve wrote:
By the way, how much overhead does threading actually introduce,
especially in a situation where there may be hundreds or thousands of
threads in an application?

You may get to a point where you can no longer spawn new threads, and pthread_create() will start to fail and you will have no recourse.

It still doesn't seem to me like you have explored select() sufficiently. select() will allow you to have a single thread (or even a small pool of threads) on the server that can handle client requests very quickly. If you have multiple cores, use two threads, each responsible for a different set of client socket descriptors. Spread the most active socket descriptors around evenly between the threads. That'd be a fun, and very efficient implementation.

If your data model is designed right, your CPU will likely never be the bottleneck anyway. It'll be the network.

--Dave

/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/

Reply via email to