Using C#, I have been doing multithreaded development for about 5 years, and consider myself quite proficient (I wrote my own lock-free queue and task parallel framework before Microsoft made TPF).

However, I find it incredibly difficult to find information on practical multithreaded system design patterns anywhere. There are some good resources on low-level algorithms and collections, but not much on system design.

So to the question, anyone know where this information can be found?

closed as off-topic by user40980, user53019, Corbin March, mattnz, Kilian Foth Sep 11 '13 at 9:57

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – Community, Community, Corbin March, mattnz, Kilian Foth
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    related: stackoverflow.com/questions/1939928/… – yannis Dec 25 '11 at 15:27
  • i should have clarified the title a bit, i was looking for "multithreaded system architecture" design patterns... so i'll be parsing the answers with this in mind.... – JasonS Dec 26 '11 at 2:05

Parallel Programming with Microsoft .NET: Design Patterns for Decomposition and Coordination on Multicore Architectures

This is a book, I recommend wholeheartedly.

It is:

  • New - published last year. Means you are not reading somewhat outdated practices.
  • Short - about 200+ pages, dense with information. These days there is too much to read and too little time to read 1000+ pages books.
  • Easy to read - not only it is very well written but it introduces hard to grasps concepts in really simple to read way.
  • Intended to teach - each chapter gives exercises to do. I know it is always beneficial to do these, but rarely do. This book gives very compelling and interesting tasks. Surprisingly I did most of them and enjoyed doing them.
  • this seems like a good starting point boris, thanks much. – JasonS Dec 26 '11 at 2:07

Threading in C#, by Joe Albahari is a good starting point.

Please consider the book .NET Multithreading too.

Not the answer you're looking for? Browse other questions tagged or ask your own question.