If you want to study the subject in more depth, I cannot recommand enough "The Art of Multiprocessor Programming" by Herlihy and Shavit. It has a nice theoretical part, followed by more practical applications.
I also enjoyed "The Art of Concurrency" for a antagonist approach to a close domain. It may be more accessible.
I cannot recommand enough "The Art of Multiprocessor Programming" by Herlihy and Shavit.
Seconded. Its a great book, possibly my favorite book on the subject. I also like "Patterns for Parallel Programming" by Timothy Mattson, Beverly Sanders and Berna Massingill.
Rumor has it that Haswell-EP is going to bring 16 core, 32 threads CPUs (up from the current 10 core, 20 thread chips), allowing for 128 threads on a 4 socket systems.
Which is to say, we're actually not that far way from the title of this site becoming quaint, like Teradata does today - assuming Moore's law holds for a while.
Interestingly, and not coincidentally, Haswell is also the
first chip that will support hardware transactional memory, which should speed efforts like PyPy's STM, which enables you to write code without manually locking anything.
Considering the problems that Sun ran into with Rock, and the opinion that Cliff Click has for Azul's own HTM implementation, I wouldn't get excited yet.
The MidiShare folks had something interesting to say about lock-free coding in the late 90's, early 2000's. Unfortunately their papers are not available in grame.fr's re-design but they are available through archive.org:
It turns out that for MIDI (and Audio) processing, lock-free techniques are quite handy .. Of course it helps if your CPU has compare-and-swap instructions, which most do these days ..
Nice post on a topic I'm always interested in. Clicking through multiple pages with ads around is a pain though. I would suggest the author to publish it as an ebook in pdf. I would definitely buy a copy if it's in $5-15 range.
I also enjoyed "The Art of Concurrency" for a antagonist approach to a close domain. It may be more accessible.