文章目录
前言
C++ atomic_flag是C++标准库中的一个原子标志类,用于实现线程间的同步和互斥。它是C++11引入的,提供了一种轻量级的原子操作方式,可以用于实现简单的互斥锁和条件变量等功能。
一、atomic_flag
std::atomic_flag
是 C++11 标准库中的一个类,它提供了一种简单的、无锁的、低开销的原子操作。std::atomic_flag
通常用于那些只需要两个状态的场景,例如作为一个标志或者是一个锁。它只能进行两种操作:设置(clear()
)和清除(test_and_set()
)。
1、特点
- 简单性:
std::atomic_flag
提供了最基础的原子操作,没有提供复杂的比较和交换(compare-and-swap)或加载/存储操作。 - 无锁:使用
std::atomic_flag
可以实现无锁编程,这通常意味着更高的性能,但也可能导致更复杂的代码。 - 低开销:由于
std::atomic_flag
的操作非常简单,所以它的开销通常比其他更复杂的原子类型要小。
2、成员函数
clear()
:将标志设置为false
。test_and_set()
:设置标志为true
,并返回之前的值。test_a