Linux内核同步机制,挺复杂的一个东西,常用的有自旋锁,信号量,互斥体,原子操作,顺序锁,RCU,内存屏障等。这里说说它们的特点和基本用法。
自旋锁 :通用的 和读写的
特点:
1. 处理的时间很短。
2. 尝试获取锁时,不能睡眠,但是有trylock接口可以直接退出。
3. 多用在中断中。
4. 任何时候只有一个保持者能够访问临界区。
5. 可以被中断打断的(硬件和软件的)
6. 获取自旋锁后首先是关闭了抢占
spin_lock使用接口:
void spin_lock_init(spinlock_t *lock);
//init