compare-and-swap - 是否由高级语言原子实现比较和交换
问题描述
假设不使用 X86 的原子指令,通过比较和交换机制在 c++ 或 java 等高级语言中实现一个名为 Atom 的函数,那么该函数是否是原子的。
int Atom(int* reg, int old_val, int new_val)
{
int old_reg_val = *reg;
if (old_reg_val == old_val)
*reg = new_val;
return old_reg_val;
}
解决方案
推荐阅读
- swift - 当每个循环应该增加时,为什么年份返回值 1?
- delphi - Delphi 中的通用助手类
- php -
- 在 PHP 中读取文本文件时将所有内容排序为数字 1
- c++ - GCC 的 -Wpsabi 选项到底有什么作用?压制它有什么影响?
- postgresql - Postgres + macOS High Sierra:在 Mac 上发布端口和卸载
- android - Espresso 测试快速切换的 ProgressBar
- csv - 在 powershell 中导入时处理 csv 中的逗号和引号
- symfony - Symfony 4 在控制器操作中禁用分析器
- android - Android:在一个应用程序中,如何让“Google voice tyipng”(com.google.android.googlequicksearchbox)超时多少分钟?
- sql-server - PowerShell 中的并行 T-SQL 执行