Professional multicore programming : design and implementation for C++ developers / Cameron Hughes, Tracey Hughes, Wiley, 2008
Concurrent programming has become important for a greater proportion of all programmers since commodity PC’s went multicore. Good books on this have been in OPL for years (click on the 5-star tag to see some of them). This book is useful because it gathers all the important topics into one place. It starts with a good introduction, then outlines machine architecture for Intel, AMD, Sparc and Cell. Then it gets into programming structure for thread synchronization, with code examples in C++. It has good reference information on Posix threads (pthreads). It is intended for C++ programmers, but Java programmers will gain from reading it too. It is not the most readable book in the library.