原子变量:存取不可被打断的特殊整型变量
a.设置原子量的值
void atomic_set(atomic_t *v,int i); //设置原子量的值为i
atomic_t v= ATOMIC_INIT(0); //定义原子变量v并初始化为0
v = 10;//错误
b.获取原子量的值
atomic_read(atomic_t *v); //返回原子量的值
c.原子变量加减
void atomic_add(int i,atomic_t *v);//原子变量增加i
void atomic_sub(int i,atomic_t *v);//原子变量减少i
d.原子变量自增自减
void atomic_inc(atomic_t *v);//原子变量增加1
void atomic_dec(atomic_t *v);//原子变量减少1
e.操作并测试:运算后结果为0则返回真,否则返回假
int atomic_inc_and_test(atomic_t *v);
int atomic_dec_and_test(atomic_t *v);
int atomic_sub_and_test(int i,atomic_t *v);
原子位操作方法:
a.设置位
void set_bit(nr, vo
原子变量是用于并发编程的一种特殊整型变量,其读写操作不可被中断。常见的原子操作包括设置值、获取值、加减操作以及自增自减。此外,还有原子位操作如设置、清除、改变和测试位。这些操作适用于保护共享资源,特别是单个整型变量的互斥访问。代码示例中展示了如何在Linux环境下使用原子变量进行设备访问控制,确保了设备文件的独占打开。
订阅专栏 解锁全文
178

被折叠的 条评论
为什么被折叠?



