I’m about to tackle what I see as a hard problem, I think. I need to multi-thread a pipeline of producers and consumers.
So I want to start small. What are some practice problems, in varying levels of difficulty, that would be good for multi-threading practice? (And not contrived, impractical examples you see in books not dedicated to concurrency).
What books or references would you recommend that focus on concurrency and give in-depth problems and cases?
(I’d rather not focus on the problem I want to solve. I just want to ask for good references and sample problems. This would be more useful to other users. I’m not stuck on the problem.)
If you have enough time to invest I would recommend the book ‘Concurrency: State Models & Java Programs, 2nd Edition’ by Jeff Magee and Jeff Kramer, John Wiley&Sons 2006
You can ignore the Java part if you are using some other language
There’s a language used to model processes and concurrent processes called FSP. It needs some time and energy to be invested in order to be proficient in the language. There’s a tool (LTSA, both are free and supported by an Eclipse plugin or stand alone app) which verifies your models and make you pretty shure that your model is correct from the standpoint of concurrent execution.
Translating this models to your language constructs is then just a question of programming technique and few design patterns.