std::atomic_ref<T>::is_lock_free

来自cppreference.com
< cpp‎ | atomic‎ | atomic ref
 
 
并发支持库
线程
(C++11)
(C++20)
(C++20)
this_thread 命名空间
(C++11)
(C++11)
(C++11)
原子类型
(C++11)
(C++20)
原子类型的初始化
(C++11)(C++20 中弃用)
(C++11)(C++20 中弃用)
原子操作的自由函数
原子标志的自由函数
内存序
互斥
(C++11)
通用锁管理
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
条件变量
(C++11)
信号量
闩与屏障
(C++20)
(C++20)
future
(C++11)
(C++11)
(C++11)
(C++11)
 
 
bool is_lock_free() const noexcept;
(C++20 起)

检查此对象上的原子操作是否免锁。

参数

(无)

返回值

若此对象上的原子操作为免锁则为 true ,否则为 false

注解

std::atomic_flag 以外的所有原子类型可能会被用互斥或其他锁定操作实现,而不一定用免锁的原子 CPU 指令。亦允许原子类型有时免锁,例如若给定架构上仅对齐的内存访问是原生原子的,则同类型的错误对齐对象必须用锁。

C++ 标准推荐(但不要求)免锁操作亦为免地址,即适用于使用共享内存的进程间交流。

示例

参阅

指示该类型为始终免锁
(公开静态成员常量)