内核同步机制
来源:互联网 发布:淘宝篮球鞋进货渠道 编辑:程序博客网 时间:2024/05/21 19:23
互斥锁
使用形式:struct mutex mutex;mutex_init(&mutex); /*定义*/...mutex_lock(&mutex); /*获取互斥锁*/... /*临界资源*/mutex_unlock(&mutex); /*释放互斥锁*/mutex_destroy(&mutex);/*销毁互斥锁*/
自旋锁:
static DEFINE_SPINLOCK(remote_lock); /*定义*/unsigned long flags;spin_lock_irqsave(&remote_lock, flags); 加锁spin_unlock_irqrestore(&remote_lock, flags); 解锁
信号量1)定义,初始化 struct semaphore:信号量类型 (1) 定义一个名字为name的互斥锁。实际上初始信号量初始化为1 DECLARE_MUTEX(name); (2)初始化一个信号,值初始为val struct semaphore name; sema_init(&name, val); (3) 定义一个名字为name的信号量,初始信号量初始化为1,实际上就是互斥锁 struct semaphore name; init_MUTEX(name); (4)定义一个名字为 sem 的信号量,初始化 sem 信号量为0 struct semaphore sem; init_MUTEX_LOCKED(sem):2) 申请信号量方法: down(&name); //得不到信号量会阻塞,不可被中断唤醒。减1操作,就是获取信号量。这个函数不可中断休眠, down_interruptible(&name); //得不到信号量会阻塞,可以被中断唤醒 down_killable(&name); down_trylock(&name); //得不到信号量不会阻塞 down_timeout(&name,jiffies); //得不到信号量会阻塞jiffies 个时间节拍3) 释放信号量方法: up(&name) 信号量加1操作。
0 0
- 内核同步机制-信号量
- Linux 内核同步机制
- Linux 内核同步机制
- Linux内核 - 同步机制
- 内核同步机制
- 内核同步机制-信号量
- linux内核同步机制
- Linux 内核同步机制
- 内核同步机制概述
- linux 内核同步机制
- 内核同步机制
- Linux 内核同步机制
- 内核同步机制
- 内核同步机制
- 内核同步机制
- 内核同步机制
- 内核同步机制-RCU同步机制
- Linux内核的同步机制
- [cocos2dx笔记016]cocos2dx 3.2 的UserDefault
- php将字符首字母大小写转换
- 曾经经历的面试题汇总(2)
- Linux iconv --字符编码转换工具
- json
- 内核同步机制
- Linux ldd -- 查看可执行文件所依赖的动态链接库
- NSString 和NSData 转换
- 查看、分析memcached使用状态
- leetcode181-Employees Earning More Than Their Managers
- oracle中varchar和varchar2区别
- Linux lsattr --显示档案隐藏属性
- [cocos2dx笔记017]cocos2dx 2.2.6 lua的类型转换
- spring3的properties文件的开发正式环境配置