在 C++ 上使用 atomic_flag

NN_*_*_05 0 c++ concurrency

我是 C++ 并发编程的初学者。我读了 std::atomic_flag ,但我不明白这个 atomic_flag 在哪里有用。也许有人可以解释一下 atomic_flag 对哪些任务有用

Kon*_*lph 5

cppreference.com 有一个用法示例。它还包含以下解释性说明:

与 的所有特化不同std::atomic,它保证是无锁的。

换句话说:你会使用它,你会用同样的方法std::atomic<bool>,但用锁游离度的附加保障(尽管在大多数系统上std::atomic<bool>也将是无锁的,即std::atomic<bool>::is_always_lock_freetrue)。