首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C++98中有哪些内存屏障?

在C++98中有哪些内存屏障?
EN

Stack Overflow用户
提问于 2019-06-10 11:11:30
回答 2查看 190关注 0票数 0

我被这条线绊倒了:Why is volatile not considered useful in multithreaded C or C++ programming?

在上面的投票中偶然发现了下面的答案..。

然而,内存屏障也确保在达到障碍时执行所有挂起的读/写,因此它有效地为我们自己提供了我们所需要的一切,使易失性变得不必要。我们可以完全删除易失性限定符。 自C++11以来,原子变量(std::原子)为我们提供了所有相关的保证。

我正在C++98平台上工作,那么C++98有哪些内存屏障可用呢?我试着用互斥对象来搜索,但是逻辑上我无法确定互斥是否是保护的足够的方法,例如,串行写入和读取都发生在两个同时的线程中,因为我对线程安全性没有足够的信心。

在c++98中访问简单共享资源的简单方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-10 11:14:02

C++98标准是单线程的(线程不存在),因此在标准中没有线程。但是,您将有特定于OS/平台的内存屏障。

票数 2
EN

Stack Overflow用户

发布于 2019-06-11 00:47:47

但我无法从逻辑上判断互斥是否是保护的足够方法,例如,串行写入和读取都发生在两个同步线程中

如果互斥锁代码不能保证这一点,那么根据定义,它们就被破坏了。我们必须看到这段代码,以检查它是否正确完成。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56525269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档