assembly - `movl` 是 x86_64 cpu 上的原子操作吗?
问题描述
int64 g_some_global_variable = 1;
// thread 1
int64 a = g_some_global_variable;
// thread2
g_some_global_variable = 10;
线程 1 将生成如下 asm 代码:
movl a(%rip), %eax
我想知道,线程 1 应该总是得到 1 或 10,就没有其他可能了吗?正确的?
解决方案
推荐阅读
- javascript - 环境预设的 Babel 转译问题
- powershell - 解析包含非标准字符的输出
- java - Android Studio“未找到 Android API 平台 30 的源”
- dynamics-crm - Dynamics 365 案例状态选项集值
- java - JAVA - 将一种日期格式转换为另一种日期格式。未处理的异常类型 ParseException
- angular - 如何在 Typescript 中为每个图标设置不同的颜色
- python - 将列表组合到列表列表中,其中匹配项位于列表内的同一列表中
- python - 如何限制 re_path URL 中的 int 值和 str 长度
- google-chrome-devtools - Chrome 开发工具无法检测到设备
- ctest - 如果测试失败,ctest 不会从 printf 输出标准输出