I have been coding for 5 years; mostly in web-based applications. And i work on serial programming; sometimes with a bit parallel: asynchronous model. Honestly speaking, my experience with multithreaded, parallel is zero. Which is bad 🙁 I know for sure what the multi threading programming is; in a basic level of awareness. That is quite a poor story of 5 year-experienced developer.
For the past couple of days; maybe a week; i decided to take a deeper look at the topic: Multi threading, parallel programming. Having googling “Multi threading, parallel programming Google gave me thousands of links. Picked up some, read some on MSDN. And i got loss 🙁 I found some links about parallel programming in new .NET 4.0. There are books about it. Reading one of them, and again i got loss twice 🙁
OK then i realized that i had no basic knowledge about it. So how can i read the API in .NET 4.0? Impossible! Even though i can use them, i cannot get them in mind. I decided: back to the basic. I got this book: Art of Concurrency. I scheduled for a future post about the review of the book. At first impression, it is really useful.
Here is my approach for overcoming Parallel Programming:
- Acknowledge the basic: by finishing the Art of Concurrency book.
- How it is implemented before the .NET 4.0: ask Google again.
- .NET 4.0: Patterns of Parallel Programming book.
- Write some code along the way of course.
As many other programming tools, techniques, what i really care about are:
- What is it?
- When to apply it?
- How to do it?
- How to test it? Usually unit test at first step
- How to debug it? Of course in case of bug.
- How to measure its performance comparing to the serial one?
Updated:
A sort comment about the Art of Concurrency. Honestly i cannot finish the book all 🙁 There are so many useful theories and examples. However my purpose is to get the idea of the Concurrency, Parallel. The first 4 chapters satisfy my needs. For me it is enough to move on with specific code in .NET framework.