__atomic_fetch_add 和 atomic_fetch_add_explicit 是什么?

atomic_fetch_add_explicit是一个宏定义, 展开后的名称为 __atomic_fetch_add.

__atomic_fetch_add是GCC的一个内置函数, 函数原型为如下, 其作用是将val加到ptr指向的变量中, 整个过程原子性操作.  GCC编译程序的时候会将其替换成合适的汇编代码.

 

在作者的Arch Linux下, atomic_fetch_add_explicit定义在 /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/include/stdatomic.h

 

其中memorder是memory order的缩写, 用以指明CPU访问内存的顺序 (Memory ordering [wiki]).

memoder相关知识拓展阅读: [留坑]