Share flags and values with std::atomic
The std::atomic
class encapsulates a single object and guarantees it to be atomic. Writing to the atomic object is controlled by memory-order policies and reads may occur simultaneously. It's typically used to synchronize access among different threads.
std::atomic
defines an atomic type from its template type. The type must be trivial. A type is trivial if it occupies contiguous memory, has no user-defined constructor, and has no virtual member functions. All primitive types are trivial.
While it is possible to construct a trivial type, std::atomic
is most often used with simple primitive types, such as bool
, int
, long
, float
, and double
.
How to do it…
This recipe uses a simple function that loops over a counter to demonstrate sharing atomic objects. We will spawn a swarm of these loops as threads that share atomic values:
- Atomic objects are often placed in a global namespace. They must be accessible to all the...