In the previous chapter, we introduced threading models in IIS and Kestrel and how they can be optimized to improve performance, as well as some new async feature support in .NET Core 3.0.
In this chapter, we will introduce parallel programming patterns and focus on understanding the parallel code problem scenarios and solving them using parallel programming/async techniques.
Although there are numerous patterns that have been utilized in parallel programming techniques, we will limit ourselves to explaining the most important ones.
In this chapter, we will cover the following topics:
- MapReduce
- Aggregation
- Fork/join
- Speculative processing
- Laziness
- Shared state