I found this article about optimizing some code that would completely have the opposite effect in a multi-threaded environment. It's very good, because it gives you a good understand how one approach can be great in a single-threaded environment, but completely fall apart in a multi-threaded environment (as far as performance goes).
http://www.gotw.ca/publications/optimizations.htm