std::atomic bool
时间: 2023-09-02 21:11:28 浏览: 155
利用C++11原子量如何实现自旋锁详解
std::atomic<bool>是C++标准库中最基本的原子布尔类型。它提供了原子操作来保证对bool变量的并发访问的一致性和线程安全性。与std::atomic_flag相比,std::atomic<bool>具有更强大的功能。它可以使用非原子的bool类型进行构造和赋值,因此可以被初始化为true或false,并且可以从非原子的bool变量赋值给std::atomic<bool>的实例。例如,可以使用以下代码创建并修改std::atomic<bool>变量b:
std::atomic<bool> b(true);
b = false;
需要注意的是,std::atomic<bool>不是无锁的,为了保证操作的原子性,它的实现中使用了内置的互斥量。但是,在特殊情况下,可以使用is_lock_free()成员函数来检查std::atomic<bool>上的操作是否无锁。这是除了std::atomic_flag之外,所有原子类型都具有的特征。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [C++中的sta::atomic<bool>和auto类型](https://blog.csdn.net/weixin_43838785/article/details/123451780)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [5.2.3 std::atomic的相关操作](https://blog.csdn.net/baidu_20351223/article/details/116019312)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文