腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
1
回答
C++ std::
memory
_
order
_relaxed混淆
、
、
、
我读过GCC Wiki
的
关于C++
的
记忆障碍(以及它
的
棒极了)。相反
的
方法是std::
memory
_
order
_relaxed。所以在前面的例子中:y.store (20,
memory
_
order
_relaxed) -Threadassert (x.load(
memor
浏览 3
提问于2020-10-12
得票数 5
回答已采纳
1
回答
memory
_
order
_relaxed在C++并发代码中不按预期工作。
、
、
、
x,y;{}{ while(!y.load(std::
memory
_
order
_relaxed));
浏览 4
提问于2018-01-07
得票数 2
回答已采纳
1
回答
为什么
memory
_
order
_seq_cst不保护我
的
原子操作运行序列?
、
);} while (!lock.load(std::
memory
_
order
_seq_cst)) assert(b.load(std::
memory
_
order
_seq_cst)); lock.store(
浏览 1
提问于2022-10-27
得票数 0
回答已采纳
1
回答
C++原子获取/发布操作它实际上意味着什么
、
那么,对于std::
memory
_
order
_relaxed
的
意思是“没有线程可以指望来自另一个线程
的
特定排序”--这意味着什么--即使调用了y.store(),也不会更新y meynot
的
值,这是否意味着重新排序将由编译器完成-Thread 1-x.store (10,
memory
_
order
_relaxed) if (x.load(<
浏览 3
提问于2020-09-20
得票数 0
回答已采纳
1
回答
获取/释放内存排序示例
、
、
、
我不理解来自
的
这个示例:-Thread 1- x.store (10,
memory
_
order
_release); assert (y.load (
memory
_
order
_acquire) == 20 && x.load (
memory
_
ord
浏览 3
提问于2013-11-15
得票数 1
回答已采纳
1
回答
Release语义中
的
内存操作- C++11
的
内存排序
、
我不明白
的
是以下
断言
是否
会
失败
:#include <thread>std::atomic_intsync{0};{ atm_y.store(200, std::
memory
_
order
_relaxed);
浏览 0
提问于2017-09-15
得票数 3
1
回答
内存排序,指令重新排序和缺乏-之前
的
关系
、
、
松弛序 if (x.load(std::
memory
_
order
_relaxed) == 5)因此,在B中完
浏览 3
提问于2015-09-14
得票数 4
回答已采纳
3
回答
对原子类感到困惑:
memory
_
order
_relaxed
、
、
、
、
但是这个关于放松模式
的
例子很难理解: x.store (10,
memory
_
order
_relaxed) if (x.load (
memory
_
order
_relaxed) == 10) assert (y.load(
memory<
浏览 5
提问于2017-09-06
得票数 6
回答已采纳
2
回答
带栅栏和鱼缸
的
C++
memory
_
order
/释放
、
、
、
); y.store(true, std::
memory
_
order
_relaxedy.load(std::
memory
_
order
_relaxed)) {} if (=0);} 在我
浏览 1
提问于2013-01-24
得票数 9
回答已采纳
3
回答
RocksDB密码错误消息
rocksdb::ColumnFamilyData::~ColumnFamilyData():
断言
`refs_ == 0‘
失败
。中止(核心倾弃)
浏览 4
提问于2015-09-07
得票数 0
1
回答
使用两个写入器
的
c++内存顺序(获取和释放),以及一个线程中两次读取之间
的
休眠,没有重新排序可见?
、
、
、
、
我对这段代码进行了大量测试,它
的
断言
从未
失败
过std::atomic<int> y{0}; x.store(true, std::
memory
_
order
_release); y.store(1, std::
memory</
浏览 5
提问于2021-09-06
得票数 0
1
回答
多个读取器能否通过获取/发布顺序与相同
的
作者同步?
、
、
、
、
在阅读了“并发操作”之后,我找不到一个问题
的
答案--当我们在一个原子变量上有一个存储(释放)和多个负载(获取)时,在读取副作用
的
标准中是否有保证?假设我们有:atomic<bool> b{}; i=42;} this_thread::yield(); assert(i=
浏览 2
提问于2021-10-13
得票数 2
回答已采纳
1
回答
Boost.Atomic示例中
的
无等待队列崩溃
、
、
、
、
T &data) node * n = new node; node * stale_head = head_.load(boost::
memory
_
order
_relaxedhead_.compare_exchange_weak(stale_head, n, boost::
memory
_
order
_release)); node
浏览 0
提问于2013-02-11
得票数 2
回答已采纳
1
回答
带依赖项
的
表达式
的
子表达式中
的
内存排序
、
、
、
、
ready_value) { } assert(data + ready_value == 26); // #2标记为#1
的
断言
可能
会
传递,也可能不会传递,因为data不携带来自ready
的
依赖项,这将
导致
竞争条件。考虑一下中
浏览 2
提问于2021-10-02
得票数 1
1
回答
为什么[[carries_dependency]]不是C++中
的
缺省值?
、
、
、
我知道有人反对
memory
_
order
_consume,但我正在努力理解最初设计中
的
逻辑,以及[[carries_dependency]]和kill_dependency应该如何工作。(p = ap.load(std::
memory
_
order
_consume))) int v2 = f(p);} 我知道这个
断言
在这段代码中可能
失败
但是,如果您将[[carries_dependency]]从f中删除,那么
浏览 5
提问于2021-02-19
得票数 5
4
回答
使用4个线程获取/发布语义
、
、
、
、
);{} { if(y.load(std::
memory
_
order
_acquire))} void read_y_then_xy.load(std::
memory
_<em
浏览 2
提问于2018-01-22
得票数 29
回答已采纳
1
回答
在同一个原子变量上混合轻松
的
访问和获取/释放访问是如何影响同步
的
?
、
、
、
、
考虑由全局初始化器和三个线程组成
的
以下示例:std::atomic<int> atm(0); x = 42;if (atm.load(std::
memory
_
order
_relaxed) == 1) [thre
浏览 1
提问于2022-03-17
得票数 2
回答已采纳
2
回答
使用
memory
_
order
_relaxed存储与
memory
_
order
_acquire一起加载
、
、
、
、
<int> z; { y.store(true, std::
memory
_
order
_relaxed);{ if (x.load(std::
memory
_
浏览 0
提问于2018-02-10
得票数 3
回答已采纳
4
回答
理解内存序列和std::
memory
_
order
_relaxed
、
、
、
int tmpSum = 0;}非常感谢。
浏览 0
提问于2018-10-09
得票数 3
2
回答
为什么需要原子bool来避免数据竞争?
、
这意味着如果y是一个正常
的
(非原子
的
) bool,那么
断言
可能
会
触发,但为什么呢?);} { std::atomic_thread_fence(std::
memory
_
order
_acquire)
浏览 12
提问于2022-06-16
得票数 14
点击加载更多
热门
标签
更多标签
云服务器
ICP备案
对象存储
实时音视频
云直播
活动推荐
运营活动
广告
关闭
领券