3

Are there any recommendations for books on threading and concurrent programming that are not language specific? Books that cover the concept of the different types of mutexes, wait conditions, semaphores, and their connection to threaded applications.

If you have a book in mind that is language specific, I would prefer that it does not deal with managed or scripting languages, such as Java, C#, Python, etc.

Matthew Hoggan
  • 7,402
  • 16
  • 75
  • 140
  • Do you want to just learn the theory? Most books out there will use a certain language, especially since the details differ depending on the language and OS. – Jesse Good Jul 28 '12 at 21:42
  • @JesseGood Cross platform threading would be nice, I have been looking at the boost documentation, and the C++-0x implmentation. However, I don't have access to a compiler with C++-0x to use in my dev environment. So a book on boost implementation would be excelent. – Matthew Hoggan Jul 28 '12 at 22:00
  • I would also highly recommend using `boost::thread` or `std::thread` as it abstracts away the OS specific stuff and is cross-platform. Unfortunately, there are no books on boost thread (the only way to learn is the tutorials on the internet (there are a bunch)). Although, there is the book "C++ Concurrency in Action" for C++11 (however, the book is more practical and doesn't get into theory), and fortunately the C++11 version is based on `boost::thread` with [some differences](http://stackoverflow.com/questions/7241993/is-it-smart-to-replace-boostthread-and-boostmutex-with-c11-equivalents). – Jesse Good Jul 28 '12 at 22:11

2 Answers2

10

Check out The Little Book of Semaphores, a "free (in both senses of the word) textbook that introduces the principles of synchronization for concurrent programming".

Josh Rosen
  • 13,511
  • 6
  • 58
  • 70
  • Also: even though you didn't want language-specific books, I can't help but recommend [*Java Concurrency in Practice*](http://www.javaconcurrencyinpractice.com/) if you will be doing concurrent programming in Java. – Josh Rosen Jul 28 '12 at 21:37
1

What about learning concurrency in the context of a particular OS? I learned about multithreading and such in my architecture class with the MINIX operating system. The nice thing about MINIX is that it's simple for students to understand. The book is "The MINIX Book", go figure.

tweaksp
  • 601
  • 5
  • 14