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. */
