std::atomic<bool>
This lesson gives an overview of std::atomic<bool> which is used from the perspective of concurrency in C++.
We'll cover the following...
Let’s start with the full specializations for bool: std::atomic<bool>
std::atomic<bool>
std::atomic<bool>
has a lot more to offer than std::atomic_flag
. It can explicitly be set to true
or false
.
atomic
is notvolatile
What does the keyword
volatile
in C# and Java have in common with the keywordvolatile
in C++? Nothing! It’s so easy in C++. That is the difference betweenvolatile
andstd::atomic
.
volatile: is for special objects, on which optimized read or write operations are not allowed
std::atomic: defines atomic variables, which are meant for a thread-safe reading and writing
It’s so easy, but the confusion starts exactly here. The keyword
volatile
in Java and C# has the meaning ofstd::atomic
in C++, i.e.volatile
has no multithreading semantic in C++.
volatile
is typically used in embedded programming to denote objects which can change independently of the regular program flow. One example is an object which represents an external ...