The memory model in C++
With the new C++11 standard, C ++ is the first time aware of the existence of threads. The foundation for multithreading in C++ is the memory model. The memory model of C++ is based on that of Java and C#, but it goes a few steps further. The memory model provides answers to the questions:
- What are atomic variables and atomic operations?
- Which partial order of operations is guaranteed?
- When are operations visible on the data?
This talk is an overview of the memory model in C++. Our tour into the depth of the C++ memory model starts with atomic variables and ends with their synchronization and ordering constraints. The default behaviour for atomic operations is the sequential consistency, but we will also cover acquire release and relaxed semantic in this talk.
Speaker: Rainer Grimm