原子类型参数定义的典型使用场景便是多进程中共享资源的计数加减,如信号量semaphores中的资源总数便是经典的使用场景。所以atomic_t原子锁支持的便是声明了一个具有原子操作特性的整数。
typedef struct{
volatile int counter; //volatile修饰符高速gcc不要对该类型数据进行优化处理,即对它的访问都是对
//内存的访问,而不是对寄存器的访问。即要读,必须重新找个寄存器载入该参数,而不是直接利用该参数
//此刻在其他高速寄存器中的备份。
} atomic_t;
Linux为原子类型参数提供了一些系列的操作函数API,收集列举如下:
参考链接:https://blog.csdn.net/roger_ranger/article/details/78545936