一、原子操作
原子操作可以保证指令以原子的方式执行----执行过程不被打断。
1.1 原子整数操作
针对整数的原子操作只能对atomic_t类型的数据进行处理。
- 首先,让原子函数只接收atomic_t类型的操作数,可以确保原子操作只与这种特殊类型数据一起使用,并且不会被其他人使用。
- 使用atomic_t类型确保编译器不对,相应的值进行访问优化。
- 在不同体系结构上实现原子操作的时候,使用atomic_t可以屏蔽其间的差异
atomic_t类型定义在文件<linux/types.h> 中
typedef struct { volatile int counter; } atomic_t;
二、自旋锁
三、读--写自旋锁
四、信号量
五、读--写信号量
六、互斥体
七、完成变量
八、BLK:大内核锁
九、顺序锁
十、禁止抢占
十一、顺序和屏障