1.原子操作—两个原子操作绝对不可能并发的访问同一个变量。 内核提供了两个原子操作接口:原子整数操作和原子位操作。
- 原子整数操作:整数的原子操作只能对atomic_t类型的数据进行处理。原因:(1)可以确保原子操作只与这种特殊类型数据在一起。(2)保证该类型的数据不会被传递个任何非原子函数。(3)可以保证编译器不对相应的值进行访问优化。(4)在不同体系结构上实现原子操作的时候,使用atomic_t可以屏蔽其间的差异。
- typedef struct {
volatile int count;
} atomic_t; 在 < asm/atomic.h >中;
原子操作使用很简单:atomic_t v; atomic_t u = ATOMIC_INIT(0)