Suppose I build a multi-threaded app and someone runs it on a multiple core processor. I suppose ideally, the OS would allocate threads between the different cores but from what I've observed that rarely (if ever) seems to happen. What happens is that the first core runs at 90% while the others sit there doing nothing. It isn't necessarily a big problem but it might be nice occasionally to make use of the extra processing power that's available. Where can I find some useful programming tips for sharing tasks between the available cores?