C++ int 操作在 mips 架构上是原子的吗

2023-12-19

我想知道我是否可以在不锁定 mips cpu 的情况下读取或写入共享 int 值(尤其是 Amazon 或 Danube)。我的意思是,如果这样的读取或写入是原子的(其他线程不能中断它们)。需要明确的是 - 我不想阻止线程之间的竞争,但我关心 int 值本身是否没有损坏。

假设编译器将所有 int 对齐到 cpu 字的边界,这应该是可能的。我使用 gcc (g++)。测试还表明它似乎工作正常。但也许有人肯定知道这一点?


使用 gcc 的内置原子操作,如果不支持它们,您将收到警告:http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.html http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.html

看起来(至少)在硬件上可以进行加法/减法和测试的组合:http://rswiki.csie.org/lxr/http/source/include/asm-mips/atomic.h http://rswiki.csie.org/lxr/http/source/include/asm-mips/atomic.h

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ int 操作在 mips 架构上是原子的吗 的相关文章

随机推荐

  • 为什么delete可以对const指针执行,而free却不能?

    我刚刚注意到指针传递给delete can be const合格而通过的人free不能 这对我来说确实是一个惊喜 在 C 中重载为operator delete应该有一个像这样的签名 void operator delete void p
  • 联合类型和额外属性

    当使用可以同时是联合类型情况的参数调用函数时 有没有办法让 TypeScript 编译器产生错误 例子 interface Name name string interface Email email string type NameOrE
  • Sails.js:如何使用水线连接多个模型?

    我有 3 个模型 大陆 国家和城市 我想加入这些模型以获得结果 大陆 js attributes continent Id type string primaryKey true continent Name type string des
  • 对象 Switch 语句的高性能 Objective C 替代方案

    我有一个函数 我想接受一个 NSString 和一个 int 参数 然后使用 switch 语句返回一个计算值 就像将 int 乘以某个常量一样 具体取决于提供的 NSString 内容 显然 switch 语句不适用于 Objective
  • 使用自定义视频编写器库编写音频的错误

    我正在尝试包装一小段方便的 C 代码 旨在使用 VFW 在 Windows 上生成视频 音频 C 库存在here http www farbrausch de 7Efg code aviwriter 描述说 使用 Windows 视频 因此
  • maven命令行如何为单个命令指向特定的settings.xml?

    是否可以指向特定的设置文件以覆盖 maven 用于单个命令的默认 settings xml 例子 mvn clean install Dparam gt pass specific settings file path as param t
  • Isabelle:向量中的最大值

    我想找到自然数向量中的最大值 然而 向量 即 vec 是与集合或列表不同的类型 我考虑了几个行不通的想法 比如调平或提升 vec 的类型或递归函数的定义 您建议采用什么解决方案来获得向量中的最大值 IMPORTS src HOL Algeb
  • 防止背景图像在更改时闪烁

    我正在使用按钮的背景图像并切换到不同的按钮 hover 当第一次鼠标悬停时发生切换时 背景颜色会短暂闪烁 我在这里将其设置为橙色 以便更明显 它与白色背景相同 或者如果我未设置背景颜色 但是 后续鼠标悬停时它不会闪烁 如何防止页面加载和第一
  • NSComparisonResult 和 NSComparator - 它们是什么?

    What is NSComparisonResult and NSComparator 我见过一种类型定义 类似这样 typedef NSComparisonResult NSComparator id obj1 id obj2 它和函数指
  • 如何在 Bootstrap 4 中的插入符下添加下拉箭头?

    我正在使用 Bootstrap 4 下拉选项 我想为左上角的下拉菜单添加一个向上箭头 在 Bootstrap 3 中 我们在按钮上有一个插入标记 因此我们可以将箭头添加到下拉菜单中 但在 Bootstrap 4 中 我们没有插入符号标记 使
  • Rails ORM 是否限制执行聚合的能力?

    我担心 Rails 是否可以处理金融应用程序所需的复杂聚合类型 特别是 ORM 是否可以有效地处理这些类型 在我正在考虑使用它的财务应用程序中 需要对以各种方式汇总的详细财务数据进行大量报告 如果没有 Rails ORM 的支持 我需要直接
  • 使 CSS 网格中的单行跨越所有列

    我怎样才能使 legend 跨越所有行 所以它会弄乱 fieldset 其样式为 3 列 CSS 网格 fieldset legend Personal Details legend fieldset fieldset legend
  • 编译器是否允许交错计算不同函数参数中的子表达式? [复制]

    这个问题在这里已经有答案了 我想知道以下情况 void f int a int b int a int x std cout lt lt func a lt lt std endl return 1 int b int x std cout
  • 如何在 Django 中测试空查询集?

    我正在 Django 中测试一个视图 该视图应该从对象中删除所有标签 为此 我使用这个断言 self assertEqual list Tag objects get for object Animal objects get pk 1 这
  • 根据 Airflow 中任务的输出字典动态生成多个任务

    我有一个任务 其中输出是一个字典 每个键中都有一个列表值 task task id gen dict def generate dict return output dict output look like this A aa bb cc
  • ASP.NET Web API,从 Flex FileReference 上传时 MIME 多部分流意外结束

    按照 ASP NET 上的教程 实现了一个用于执行异步文件上传的 Web API 控制器方法 如下所示 public Task
  • 帮助理解 Java 中的函数对象或函子

    有人可以解释什么是函子并提供一个简单的例子吗 函数对象就是这样 既是对象又是函数的东西 旁白 将函数对象称为 函子 是对该术语的严重滥用 另一种 函子 是数学中的核心概念 并且在计算机科学中具有直接作用 请参阅 Haskell 函子 该术语
  • 在 PHP 中应用差异

    我正在使用 Text Diff PEAR 包来比较短文本文档 其中 Text Diff 对象是使用每个文档中以空格分隔的单词列表创建的 我希望将差异存储在数据库中 然后在再次加载文件时应用它 有没有一种简单的方法来应用这个差异 或者我需要编
  • 应用程序根目录中“npm install”生成的许多不必要的文件

    通常 当我在应用程序目录中执行 npm install 时 会在 node modules 文件夹中生成一堆 npm 库文件 这是预期的 今天突然我开始看到许多文件在应用程序目录内部和节点模块外部生成 有人遇到过这个问题吗 如果是的话 有什
  • C++ int 操作在 mips 架构上是原子的吗

    我想知道我是否可以在不锁定 mips cpu 的情况下读取或写入共享 int 值 尤其是 Amazon 或 Danube 我的意思是 如果这样的读取或写入是原子的 其他线程不能中断它们 需要明确的是 我不想阻止线程之间的竞争 但我关心 in