linux内核同步机制(1)------自旋锁

时间:2021-06-13 10:55:26   收藏:0   阅读:0

一、简介与使用

  自旋锁适用于用于保护短的代码段,通过spinlock_t数据结构实现,常用接口如下:

  1) spin_lock 和 spin_unlock
2) spin_lock_irqsave 和 spin_unlock_restore: 获取锁的同时还会关中断
3)spin_lock_bh/ spin_unlock_bh : 关软中断
4) spin_trylock 和 spin_trylock_bh 尝试获取锁,但不会阻塞
通常自旋锁使用 SPIN_LOCK_UNLOCKED进行初始化。
二、注意事项
1) 自旋锁保护的临界区不宜过长(比如加入打印日志代码)或者调用会睡眠的函数
2) 单CPU系统中,由于会有内核抢占的出现,spin_lock等价于preempt_disable

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!