linux驱动开发---并发控制

来源:互联网 发布:java上传图片回显 编辑:程序博客网 时间:2024/05/29 12:07
  1. 中断屏蔽
       local_irq_disable();         /* 临界代码*/       local_irq_enable();

2.原子操作

     整形原子操作:         void atomic_set(atomix_t *v,int i)  //设置原子变量值为i         atomic_t v = ATOMIC_INIT(2);   //设原子变量v值为2         atomic_read(atomic_t *v);         void atomic_add(int i,atomic_t *v) //把原子变量增加i         void atomic_sub(int i,atomic_t *v)         void atomic_inc(atomic_t *v);  //原子变量自增         void atomic_dec(atomic_t *v);  //原子变量自减static atomic_t xxx_mic=ATOMIC(2); //定义原子变量static int xx_fun(void){    if(!atomic_dec_and_test(&xxx_mic)){   //测试自减1后是否为0        atomic_inc(&xxx_mic);   //还原        return -EBUSY;        }    /*临界代码*/    return 0;}

3.自旋锁

保证对资源的互斥访问
  spinlock_t  lock;  //定义一个自旋锁  spin_lock_init(lock);   //初始化一个自旋锁  spin_lock(lock);  //上锁  获得一个自旋锁       //若未获得则一直原地等待  spin_trylock(lock); //获得一个自旋锁      //若未获得者返回false  spin_unlock(lock); //开锁  释放自旋锁
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 婴幼儿鼻塞有痰怎么办 感冒了浑身没劲怎么办 四个月宝宝鼻塞怎么办 四个月小孩鼻塞怎么办 小儿流清水鼻涕怎么办 小孩总是流鼻子怎么办 四个月小孩咳嗽怎么办 儿童流清水鼻涕怎么办 四个月婴儿发烧怎么办 宝宝体温36度怎么办 儿童感冒后鼻塞怎么办 儿童没感冒鼻塞怎么办 宝宝鼻塞怎么办3岁 儿童刚开始感冒鼻塞怎么办 婴儿感冒打喷嚏流鼻涕怎么办 宝宝感冒鼻涕多怎么办 一个多月的宝宝鼻塞怎么办 五个月宝宝鼻塞怎么办 4个月大婴儿鼻塞怎么办 四个月婴儿鼻塞怎么办 鼻炎晚上睡觉鼻塞怎么办 感冒了一直流鼻涕怎么办 感冒了鼻塞严重怎么办 两边鼻子都塞怎么办 感冒睡觉鼻子堵怎么办 孩子鼻炎流清水怎么办 小儿鼻涕流不停怎么办 老是单侧流鼻涕怎么办 有鼻炎光流鼻涕怎么办 一只鼻塞流鼻涕怎么办 鼻子总痒流鼻涕怎么办 鼻子总是痒流鼻涕怎么办 感冒后老流鼻涕怎么办 鼻炎犯了鼻塞怎么办 鼻炎鼻塞鼻涕多怎么办 猪鼻塞怎么办速效办法 感冒难受怎么办小窍门 来月经上火了怎么办 鼻血狂流不止怎么办 十三个月宝宝流鼻血怎么办 单侧鼻子出血怎么办