当前位置:首页 > 编程笔记 > 正文
已解决

C++(11):原子类型的is_lock_free/is_always_lock_free

来自网友在路上 11128112提问 提问时间:2023-11-22 19:50:22阅读次数: 112

最佳答案 问答题库1128位专家为你答疑解惑

原子类型提供了一个成员函数is_lock_free,用于指示该原子类型是不是以无锁方式实现的:

#include <iostream>
#include <atomic>
using namespace std;int main(){cout<<atomic_char().is_lock_free()<<endl;cout<<atomic_int().is_lock_free()<<endl;return 0;
}运行程序输出:
1
1

同时原子类型提供了一个编译器常量静态成员is_always_lock_free

static constexpr bool is_always_lock_free

用于指示,该原子类型是不是总是以无锁方式实现的。

#include <iostream>
#include <atomic>
using namespace std;int main(){cout<<atomic_char::is_always_lock_free<<endl;cout<<atomic_int::is_always_lock_free<<endl;return 0;
}运行程序输出:
1
1

需要注意的是由于is_always_lock_free是编译期常量,所以只有当所有的平台上都是以无锁方式实现的原子操作时才会返回true。

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"C++(11):原子类型的is_lock_free/is_always_lock_free":http://eshow365.cn/6-41918-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!