悟空学Linux专栏----第49篇

  (Linux内核同步机制之自旋锁)

  接着讲解自旋锁操作API!

  spin_lock_init(x);

  该宏用于初始化自旋锁x,自旋锁在真正使用之前必须先初始化,该宏用于动态初始化;

  spin_unlock_wait(x)

  该宏用于等待自旋锁x变得没有被任何执行单元保持,如果没有任何执行单元保持该自旋锁,该宏立即返回,否则将在循环在那里,直到该自旋锁被释放;

  spin_trylock(x)

  该宏尽力获得自旋锁lock,如果能立即获得锁,返回真;否则返回假;

  spin_lock(lock)

  该宏用于获得自旋锁lock,如果能够立即获得,函数马上返回,否则,函数自旋,进行忙等待;

  spin_lock_irqsave(lock, flags)

  该宏在获得自旋锁的同时把标志寄存器的值保存到变量flags中并关闭本地中断;

  spin_lock_irq(lock)

  该宏与spin_lock_irqsave类似,只是该宏不保存标志寄存器的值;

  spin_lock_bh(lock)

  该宏在得到自旋锁的同时关闭本地中断,应用于中断下半部;

  spin_unlock(lock)

  该宏释放自旋锁lock,它与spin_trylock或spin_lock配对使用,如果spin_trylock返回假,表明没有获得自旋锁,所以不用spin_unlock解锁;

  spin_unlock_irqrestore(lock, flags)

  该宏释放自旋锁lock的同时,也恢复标志寄存器的值为变量flags保存的值,它与spin_lock_irqsave配对使用。

  下篇继续讲解自旋锁操作API。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值