您的位置:首页 > 运维架构 > Linux

linux并发控制之中断屏蔽

2013-01-31 17:22 218 查看
在单CPU范围内避免竞态的一个简单方法。
注意:
    中断对系统正常运行很重要,长时间屏蔽很危险,所以中断屏蔽后应尽可能快的执行完毕。

    宜与自旋锁联合使用。

使用
    local_irq_disable()

    local_irq_enable()
只能禁止和使能本地CPU的中断,所以不能解决多CPU引发的竞态

    local_irq_save(flags)

    local_irq_restore(flags)
除了能禁止和使能中断外,还保存和还原目前的CPU中断位信息

    local_bh_disable()

    local_bh_disable()
如果只是想禁止中断的底半部,这是个不错的选择。

定义于 #include<linux/irqflags.h>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: