社区
C++ 语言
帖子详情
std::atomic_bool的load()取值和=号取值有什么区别?
eakey
2020-02-28 10:41:33
std::atomic_bool isDone(false);
bool isClone=isDone和bool isClone=isDone.load()有什么区别?
...全文
3795
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++并发编程实战》笔记(五)
C++标准原子操作、
std
::
atomic
_flag、C++并发编程内存次序、
std
::memory_order、C++栅栏、
std
::
atomic
_thread_fence
C++11 并发指南六( <
atomic
> 类型详解二
std
::
atomic
)
C++11 并发指南六(
atomic
类型详解一
atomic
_flag 介绍) 一文介绍了 C++11 中最简单的原子类型
std
::
atomic
_flag,但是
std
::
atomic
_flag 过于简单,只提供了 test_and_set 和 clear 两个 API,不能满足其他需求(如 store,
load
, exchange, compare_exchange 等),因此本文将介绍功能更加完善的
std
::
atomic
类。
std
::
atomic
基本介绍
std
::
atomic
是模.
c++ 11 原子操作库 (
std
::
atomic
)(二)
每个
std
::
atomic
模板的实例化和全特化定义一个原子类型。若一个线程写入原子对象,同时另一线程从它读取,则行为良好定义(数据竞争的细节见内存模型)。
C++ 语言
65,180
社区成员
250,527
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章