views:

119

answers:

4

Over the last couple months I've been working with programs that involve multi-threading aspects to them. Multi-threaded programs a very new to me and while I understand the crude basics, how to go about designing a multi-threaded program is still beyond my skill-set. I would like to know what resources that people have found online that gave you an "Omg! That makes total sense now!" moment for this topic.

This should probably be a community wiki but due to the latest changes to SO, I can't make it one (that I know of at least).

Edit: I'm aiming toward reading that is language-independent if possible. Though I don't want to discurage anything that might be particular of a language if it is informative enough to general multi-threading program design.

A: 

Here are some basic starting points:

I don't want to state the obvious, but there's the Wikipedia article: Wikipedia: Multithreading
There's also a relatively old Linux article here: Multithreading and Linux
  and a POSIX threads tutorial: POSIX threads tutorial
For Windows, here's a great MSDN article: What Every Dev Must Know About Multithreaded Apps

If you want to go get some decent cross-platform multithreading books, there are:

Michael Goldshteyn
+4  A: 

Herb Sutter has a Dr. Dobbs column called Effective Concurrency that's terrific. It's a little C++-centric but the underlying lessons are well explained and are bite-sized so you don't get overwhelmed.

Paul Rubel
highly recommended
Yogesh Arora
+1  A: 

Threading must-reads

Concurrency must-reads

Piet Delport
A: 

I see you have been active in C/C++ tags here. In that case the Boost.Thread documentation might be interesting. This provides portable implementations of important threading concepts and states clearly how to use them. If I was starting out as a C++ multithreading programmer, I would absolutely not build this stuff myself but use this library. The author of the library (active on Stack Overflow under his real name) has a book coming out soon, which appears to be available online now for a fee.

Steve Townsend