7

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?

JasonS
  • 193
  • 6
  • 1
    related: http://stackoverflow.com/questions/1939928/oo-design-patterns-for-multi-threaded-synchronisation – 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 02:05

2 Answers2

3

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.
Boris Yankov
  • 3,573
  • 1
  • 23
  • 29
2

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

Please consider the book .NET Multithreading too.