原文链接:https://blog.csdn.net/q583956932/article/details/78826987
下面是各种原子操作的列表:
函数名 | 作用 |
---|---|
atomicAdd(&value, add_num) | 加法:value = value + add_num |
atomicSub(&value, sub_num) | 减法:value = value + sub_num |
atomicExch(&value, num) | 赋值:value = num |
atomicMax(&value, num) | 求最大:value = max(value, num) |
atomicMin(&value, num) | 求最小:value = min(value, num) |
atomicInc(&value, compare) | 向上计数:如果(value <= compare)则value++,否则value = 0 |
atomicDec(&value, compare) | 向下计数:如果(value > compare或value == 0), 则value–,否则value = 0 |
atomicCAS(&value, compare) | 比较并交换:如果(value != compare),则value = compare |
atomicAnd(&value, add_num) | 或运算 value = value |
atomicXor(&value, add_num) | 异或运算 value = value ^ num |
以上这些原子操作函数的返回值均为被修改前的“value”值。