当前位置:网站首页>std::atomic_flag的test_and_set函数理解
std::atomic_flag的test_and_set函数理解
2022-08-09 17:24:00 【hellozhengyuan】
std::atomic_flag test_and_set函数理解
std::atomic_flag的test_and_set函数原型如下:
bool test_and_set(std::memory_order order = std::memory_order_seq_cst) volatile noexcept; (1) (since C++11)
bool test_and_set(std::memory_order order = std::memory_order_seq_cst) noexcept; (2) (since C++11)
Atomically changes the state of a std::atomic_flag to set (true) and returns the value it held before.
atomic_flag只能有3个状态:
- 未设置(定义时未初始化,在c++20以后在定义时自动初始化为false,即在c++20以后此状态不再存在)
- 清除(false)
- 设置(true)
test_and_set函数的理解
此函数有两种语义:
- 1. test表示先测试(读取当前atomic_flag的值)并返回个这结果值;
- 2. set表示将atomic_flag状态设置为ture。
可以看出,test_and_set函数的返回值与set的结果没有关系,返回值只表示调用test_and_set函数前的atomic_flag当前的状态。调用此函数后atomic_flag状态一定为true。
可以看出atomic_flag原子变量的操作十分的有限。直到c++20以后才新增test()函数,对atomic_flag状态无修改的只读访问函数。
边栏推荐
猜你喜欢
Wallys/QCA 9880/802.11ac Mini PCIe Wi-Fi Module, Dual Band, 2,4GHz / 5GHz advanced edition
动态RDLC报表(一)
C语言知识补充
[SUCTF 2019]CheckIn
IMX6ULL—Assembly LED Lights
JVM:(八)运行时数据区之方法区
One-key login principle of local number
论文解读:Deep-4MCW2V:基于序列的预测指标,以鉴定大肠杆菌中的N4-甲基环胞嘧啶位点
释放数据价值的真正法宝,数据要素市场化开发迫在眉睫
Li Yuanyuan: iMetaLab Suite metaproteomics data analysis and visualization (video + PPT)
随机推荐
那些关于DOM的常见Hook封装(二)
Unity Webgl与JS相互交互 Unity 2021.2之后的版本
IMX6ULL—汇编LED灯
leetcode300.最长递增子序列(动态规划)
01 -- 钉钉机器人
kakka rebalance解决方案
approach和method的区别
jmeter - record script
腾讯云2022年8月积分商城规则更新
毕昇编译器优化:Lazy Code Motion
不是吧,连公司里的卷王写代码都复制粘贴,这合理?
Unix domain socket
【工业数字化大讲堂 第二十期】制造业数字化能力建设分享,特邀制造业高级咨询顾问 李东老师分享
自学软件测试,学到什么程度可以出去找工作啊?
OpenCV 轮廓 —— 轮廓匹配
Jenkins deploys services to remote servers using pipelines
ref的使用
Cortex-A7 MPCore 架构
How tall is the B+ tree of the MySQL index?
说了半天跨平台,今儿咱就来跨跨!(完结篇)——Kubenetes上手实践