腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
2
回答
我
可以
在
没有
atomic_load
的
情况下
读取
原子
变量
吗
?
、
、
我
有一个单一写入者,多个
读取
者
的
情况。有一个计数器,一个线程正在写入,任何线程都
可以
读取
这个计数器。由于单个写入线程不必担心与其他线程争用数据访问,下面的代码安全
吗
?uint32_t load_counter() {} 写入器线程直接
读取
counter,而不调用任何
atomic_load
*函数。这应该是安全
浏览 10
提问于2017-02-02
得票数 7
回答已采纳
1
回答
C11内存模型--两个线程执行atomic_fetch_add,然后执行
atomic_load
--什么输出是可能
的
?
、
、
、
、
考虑以下测试程序,编译并运行在完全实现C2011
原子
和线程
的
实现上。,以下所有说法都是正确
的
: 每个线程
的
atomic_load
必须观察同一线程执行
的
增量,因此不能
读取
零。每个线程
的
atomic_load
可能观察到也可能
没有
观察到另一个线程执行
的
增量。(
在
atomic_load
之后,其他线程可能根本不会被调度。)因此,它
可以
读取</e
浏览 5
提问于2022-08-02
得票数 4
1
回答
atomic_load
()和赋值有什么不同?
、
、
、
我
正在做一个处理很多
原子
操作
的
项目。到目前为止,
我
还不知道
atomic_load
(),
我
只是依靠赋值操作符来获得
原子
类型
的
值,除了这么多
的
测试之外,
我
还
没有
看到一个错误。这些
原子
类型是由多个进程和线程以及atomic_compare_exchange_strong_explicit()更改
的
,所以每次都需要一个旧值,这就是
我
一直做oldValue
浏览 4
提问于2019-05-24
得票数 1
回答已采纳
1
回答
是否有一个函数以
原子
方式加载一个非
原子
值?
、
、
在
C++20中,我们
可以
写:有同样效果
的
函数
吗
?
我
尝试过std::
atomic_load
,但是似乎
没有
对非
原子
对象
的
过载。
浏览 2
提问于2020-07-01
得票数 7
回答已采纳
1
回答
避免SPSC队列索引
的
错误共享
、
、
、
、
它们
可以
被视为私有线程局部
变量
,因此它们是不同步
的
,因此不被定义为
原子
变量
。函数num_remaining_storage和num_stored_elements是基于传递
的
参数和不可变队列容量执行简单计算
的
const函数--它们不执行任何
原子
读或写。现在
的
问题是:
我
是否也需要对cached_tail和cached_head,以完全避免错误地共享任何索引,或者它是
可以
的
。由于cac
浏览 4
提问于2020-04-29
得票数 2
回答已采纳
3
回答
无锁双向链表
的
原子
操作
、
、
、
、
在
本文中,他们使用了一种智能
的
方法来存储单词中
的
删除标志和指针。compareAndSwap函数中,
我
必须比较和交换三个
原子
变量
。有关问题
的
信息是现在
我
的
问题是:
我
如何编写compareAndSwap函数来比较和交换三个
原子
变量
,或者
我
在哪
浏览 3
提问于2013-10-27
得票数 4
2
回答
我
可以
将C11 `_Atomic`关键字应用于枚举类型
吗
?
、
、
、
如果
我
有一个类型 FOO, BAZ,然后,
我
可以
声明那种类型
的
原子
版本
吗
?_Atomic(enum foo);以下程序不带警告地编译: _Atomic(enum foo) foo_a;
浏览 0
提问于2019-03-05
得票数 5
回答已采纳
1
回答
带栅栏
的
SPSC螺纹安全
、
、
、
、
与C11
原子
如果
浏览 3
提问于2017-02-04
得票数 0
回答已采纳
1
回答
使用shared_ptr时
、
、
、
、
我
正在尝试通过使用来实现C++中基于shared_ptr
的
基于并发列表
的
集合shared_ptr。
我
的
推理是,unreachable nodes将由最后一个shared_ptr自动释放。根据我
的
理解,shared_ptr's reference count上
的
增量和递减操作是
原子
的
。这意味着只有引用该节点
的
最后一个 shared_ptr才应该为该节点调用delete/空闲。
我
运行
浏览 3
提问于2018-02-10
得票数 5
1
回答
用MSVC实现C中
的
原子
负载
、
、
、
博士:
我
需要微软C(而不是C++)相当于C11
的
atomic_load
。有人知道什么是正确
的
功能
吗
?也许
我
遗漏了一些东西,但是似乎
没有
任何东西
可以
用于简单
的
负载。
我
唯一能想到
的
就是像Interl
浏览 2
提问于2017-03-07
得票数 9
回答已采纳
2
回答
多线程环境中
的
延迟加载数据
、
、
、
,mSubLevels
在
chunk中是空
的
。实际上,
我
有一些方法,在其中一个方法中,
在
第一次访问mSubLevels时,
我
检查这个指针,如果为null,
我
将通过一个mutex创建所需
的
数据。但是其他方法是只读
的
,
我
不改变structure。(
在
创建acquire/release
的
线程和
读取
它们
的
线程之间
没有
任何chunks排序)。 现在
浏览 3
提问于2013-12-29
得票数 0
回答已采纳
3
回答
C++11中shared_ptr
的
原子
操作
、
、
通过阅读c++11草案,20.7.2.5节,看起来我们
在
shared_ptr上进行了
原子
操作,这使我们能够
在
复杂
的
结构上进行锁释放,而不必担心GC/内存泄漏。然而,
我
不能成功地使用它在GCC-4.7.0。;}; std::shared_ptr<X> x(new X);有人知道
我
错过了什么
吗
浏览 1
提问于2012-06-09
得票数 12
1
回答
是否需要`memory_order_relaxed`来防止
原子
存储
的
部分
读取
?
、
、
假设线程1
在
变量
v上使用memory_order_release (或任何其他顺序)进行
原子
存储,而线程2使用memory_order_relaxed对v执行
原子
读取
。在这种
情况下
,不可能有部分阅读。部分
读取
的
一个例子是从最新值
读取
v
的
前半部分,从旧值
读取
v
的
后半部分。 如果线程2现在不使用
原子
操作就
读取
v,理论上
可以
部分<em
浏览 1
提问于2019-10-20
得票数 0
回答已采纳
2
回答
我
在这里正确地使用共享内存上
的
atomic<>
吗
?
、
、
、
它们都使用相同
的
mmap-ed内存区域来传递一些信息,
在
本例中是uint16_t。#include <cstdint>#include <iostream> #include <sys/mman.h
我
担心
的</e
浏览 12
提问于2022-08-24
得票数 0
1
回答
stdatomic (C11),关于_Atomic类型
的
三个问题
、
、
、
第一个问题 用作类型说明符;这指定了一个新
的
原子
类型。_Atomic type-name (2) (自C11以来)
在</em
浏览 0
提问于2017-12-26
得票数 1
回答已采纳
3
回答
_Atomic类型限定符和类型说明符之间有区别
吗
?
这两者似乎都以相同
的
方式指定了
原子
类型
的
。
浏览 5
提问于2014-10-20
得票数 18
1
回答
用于BSD以外
的
开放源码软件
的
原子
负载/存储?
、
、
、
、
在
BSD提供
的
原子
操作(如在
原子
(9)手册页上提供
的
)中,有atomic_load_acq_int()和atomic_store_rel_int()。
在
寻找其他操作系统(例如,通过为Mac
读取
原子
(3)手册页、为Solaris
读取
手册页和为Windows
读取
Interlocked*()函数)时,似乎
没有
任何(明显
的
)等价于仅仅
原子
地
读取
/
浏览 3
提问于2010-07-11
得票数 3
2
回答
如何使用
原子
指针执行双缓冲?
、
、
原子
新手来了。
我
的
代码目前看起来如下(简化):{} 换句话说,
我
的
想法是让thread_b
原子
地交换共享对象
我
<em
浏览 0
提问于2018-10-30
得票数 14
回答已采纳
2
回答
VC11中std::shared_ptr上
的
atomic_load
/atomic_store -为什么会出现全局自旋锁?
、
、
、
我
正在尝试准确地理解如何使用
原子
操作安全地管理共享指针。事实证明,VC11 (Visual studio 2012)支持C++11,因此
可以
允许std::shared_ptr上
的
读/写竞争。
我
想检查一下
我
是否理解了基础知识,然后询问一些关于VC11中std::shared_ptr上
的
原子
操作
的
实现细节。x = std::make_shared<A>(args1); y = std::make_shared<
浏览 1
提问于2013-03-09
得票数 5
回答已采纳
1
回答
在
英特尔上,来自<stdatomic.h>
的
atomic_store/load是否适用于未对齐
的
跨缓存行数据?
、
、
、
、
使用atomic_store存储
的
数据和使用
atomic_load
加载
的
数据是否始终保持一致? 具体地说:
在
现代英特尔处理器上,C11程序访问故意放在高速缓存线之间边界上
的
64位数据。它使用atomic_store &
atomic_load
(来自<stdatomic.h>)从多个线程(运行在不同
的
内核上)访问这些数据。数据是否总是一致
的
,或者加载数据(
atomic_load
)有时会有一些字节属于旧值,而另一些字
浏览 10
提问于2017-08-17
得票数 6
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
在没有开始菜单的情况下可以使用Windows 10吗?
黑客在无网络的情况下可以上网吗
机器学习算法现在可以在没有人类帮助的情况下解开魔方
深海热液喷口发现的纳米结构可以在没有生命的情况下产生能量
运营Google Ads,我可以在不同的广告组投放相同的关键字吗?
热门
标签
更多标签
云服务器
ICP备案
对象存储
云直播
腾讯会议
活动推荐
运营活动
广告
关闭
领券