首页 > 解决方案 > 是否由高级语言原子实现比较和交换

问题描述

假设不使用 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;
}

标签: compare-and-swap

解决方案


推荐阅读