April 2020
Intermediate to advanced
412 pages
9h 58m
English
We learned how to work with integer atomic variables. Though this type of atomic variable is the most commonly used, C++ allows atomic variables of other types to be defined as well, including non-integral types, given that they are trivially copyable, copy constructible, and copy assignable.
Besides the fetch_add method we used in our example, atomic variables have other similar methods that help developers to query the value and modify the variable in a single operation. Consider using these methods to avoid race conditions or expensive synchronization using mutexes.
In C++20, atomic variables receive wait, notify_all, and notify_one methods, similar to the methods of condition variables. They allow implementation of the ...