Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

share|improve this question

closed as off-topic by MichaelT, GlenH7, 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, GlenH7, Corbin March, mattnz, Kilian Foth
If this question can be reworded to fit the rules in the help center, please edit the question.

related:… – 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
up vote 3 down vote accepted

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.
share|improve this answer
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.

share|improve this answer

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