We covered the implementation of these patterns in Chapter 5, Synchronization Primitives.
A parallel application has to deal with a shared state problem constantly. The application will have some data members that need to be protected when they're accessed in a multithreaded environment. There are many ways to deal with shared state problems, such as using Synchronization, Isolation, and Immutability. Synchronization can be achieved using the synchronization primitives provided by the .NET Framework and it can also provide mutual exclusion over a shared data member. Immutability guarantees only one state for a data member and never changes. Consequently, the same state can be shared across threads without any issues. Isolation deals with each thread having its own copy of data members.
Now, we'll summarize what we learned in this chapter.
...