社区
C++ 语言
帖子详情
std::atomic_bool的load()取值和=号取值有什么区别?
eakey
2020-02-28 10:41:33
std::atomic_bool isDone(false);
bool isClone=isDone和bool isClone=isDone.load()有什么区别?
...全文
4794
5
打赏
收藏
std::atomic_bool的load()取值和=号取值有什么区别?
std::atomic_bool isDone(false); bool isClone=isDone和bool isClone=isDone.load()有什么区别?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
echo<£>
2020-12-22
打赏
举报
回复
1、load是取值,“=”是赋值,不是一回事,取值的方式有两种,一种是通过load取值,另一种直接用创建的示例取值(这种方式实际调用的是仿函数,即重载了“()”运算符,再通过仿函数调用 load() 实现取值) 2、赋值方式 store 和“=”运算符号,差别是,store采用memcpy进行值拷贝,而重载的“=”是通过逐字节赋值而且还是值交换的方式进行,效率比store慢;另外store可以直接使用 atomic对象进行赋值,并不是有接受atomic对象的store函数,而是传入的对象会先调用仿函数获取实际值作为store的返回值,而“=”运算符自带的删除,新定义的重载“=”的函数只能接受atomic管理的示例类型的值,例如 atomic_bool 利用“=”符号只能用类型 的值而不能用atomic_bool对象赋值
真相重于对错
2020-11-26
打赏
举报
回复
bool isClone=isDone 这句话调用的是 operator _Ty() const noexcept { return this->load(); } 你可以看到其实就是load
echo<£>
2020-11-26
打赏
举报
回复
你确定没有线程安全的差别吗?
yshuise
2020-11-26
打赏
举报
回复
std::atomic_bool isDone(false);
=================
这玩意儿是用于多线程的原子语句!
sdghchj
2020-02-28
打赏
举报
回复
重载了赋值运算符,没区别
std
::
atomic
<
bool
> 与
std
::
atomic
_flag 的核心
区别
都是用于原子操作的模板类型,但它们在实现、功能和使用场景上有显著差异。是 C++ 中唯一保证无锁的原子类型,其底层通常直接映射到硬件的原子指令(如 x86 的。是否无锁取决于编译器和目标平台。通常用于实现底层同步原语(如自旋锁)。在 C++ 多线程编程中,指令),无需依赖锁机制。
C++11 并发指南六( <
atomic
> 类型详解二
std
::
atomic
)
std
::
atomic
基本介绍
std
::
atomic
是模板类,一个模板类型为 T 的原子对象中封装了一个类型为 T 的值。 template class T> struct
atomic
; 原子类型对象的主要特点就是从不同线程访问不会导致数据竞争(data race)。因此从不同线程访问某个原子对象是良性 (well-defined) 行为,而通常对于非原子类型而言,并
c++
std
::
atomic
c++
std
::
atomic
原子操作
《C++并发编程实战》笔记(五)
C++标准原子操作、
std
::
atomic
_flag、C++并发编程内存次序、
std
::memory_order、C++栅栏、
std
::
atomic
_thread_fence
C++ 原子类型和原子操作
/5.
std
::
atomic
::exchange():交换原子对象中的值,并返回原来的值。//1.12.
std
::
atomic
_ptrdiff_t:ptrdiff_t 类型原子变量。//1.11.
std
::
atomic
_size_t:size_t 类型原子变量。//4.
std
::
atomic
::store():将值存储到原子对象中。//3.
std
::
atomic
::
load
():从原子对象中读
取值
。//1.6.
std
::
atomic
_long_long:长长整型原子变量。
C++ 语言
65,197
社区成员
250,525
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章