If you are into wait-free and lock-free data structures, you owe it to yourself to get Herlihy and Shavit's "Art of Multiprocessor Programming."<p><a href="http://www.amazon.com/Art-Multiprocessor-Programming-Maurice-Herlihy/dp/0123705916" rel="nofollow">http://www.amazon.com/Art-Multiprocessor-Programming-Maurice...</a><p>Not only does it provide a well-debugged, well-written collection of wait-free data structures; it teaches you to <i>think</i> about concurrency in a structured way. The mutual exclusion chapter doesn't teach you which pthread routines to use, but instead tells you how to implement mutual exclusion, and the trade-offs inherent in, e.g., spin locks vs. queueing locks. A significant bonus is Maurice Herlihy's distinctive prose voice: correct, concise, and funny in that order. It is the best computer book I've read recently, and the one I recommend to all colleagues who are trying to take their concurrency chops up to the next level.<p>(I took a course from Herlihy in '99, but am otherwise unaffiliated.)
Download here: <a href="http://sourceforge.net/projects/high-scale-lib/" rel="nofollow">http://sourceforge.net/projects/high-scale-lib/</a><p>And some relevant blog posts by the author, Cliff Click:<p><a href="http://www.azulsystems.com/blog/cliff-click/2007-03-26-non-blocking-hashtable" rel="nofollow">http://www.azulsystems.com/blog/cliff-click/2007-03-26-non-b...</a>
<a href="http://www.azulsystems.com/blog/cliff-click/2007-04-23-nonblocking-hashtable-source-code" rel="nofollow">http://www.azulsystems.com/blog/cliff-click/2007-04-23-nonbl...</a>
<a href="http://www.azulsystems.com/blog/cliff-click/2007-06-03-engineering-hash-table" rel="nofollow">http://www.azulsystems.com/blog/cliff-click/2007-06-03-engin...</a>
<a href="http://www.azulsystems.com/blog/cliff-click/2007-09-13-more-thinking-about-non-blocking-structures" rel="nofollow">http://www.azulsystems.com/blog/cliff-click/2007-09-13-more-...</a>
<a href="http://www.azulsystems.com/blog/cliff-click/2008-01-07-adding-transactions-non-blockinghashmap" rel="nofollow">http://www.azulsystems.com/blog/cliff-click/2008-01-07-addin...</a>
<a href="http://www.azulsystems.com/blog/cliff-click/2008-08-07-just-what-heck-wait-free-algorithm" rel="nofollow">http://www.azulsystems.com/blog/cliff-click/2008-08-07-just-...</a><p>His blog is a must-read if you like compilers, running things at scale, JITing Java, interesting data structures, and generally being Really Clever At Computing.
This is actually a two-part talk. At the 50 minute mark, there's a case study on optimizing a heavily-threaded Java app. It's partially about throwing heaps of RAM and cores at the problem (using the Azul platform), but it's also a general refresher on how to attack performance problems that involve lots of threads.
Now that is something worth patenting... I'm kidding of course (I am all against them), but it seems non-trivial and non-obvious approach, unlike many other ridiculous patents.