Memory Model
The foundation of multithreading is a well-defined memory model. From the reader’s perspective, it consists of two aspects. On the one hand, there is the enormous complexity of it, which often contradicts our intuition. On the other hand, it helps a lot to get a more in-depth insight into the multithreading challenges.
However, first of all, what is a memory model?