Acquire Release Semantic
This lesson introduces the concept of the acquire-release semantic used in C++.
We'll cover the following...
There is no global synchronization between threads in the acquire-release semantic; there is only a synchronization between atomic operations on the same atomic variable. A write operation on one thread synchronizes with a read operation on another thread on the same atomic variable.
The acquire-release semantic is based on one key idea: a release operation synchronizes with an acquire operation on the same atomic and establishes an ordering constraint. This means all subsequent read and write operations cannot be moved before an acquire operation, and all read and write operations cannot be moved after a release operation.
...