mutex互斥体

linux内核也有正宗的互斥体 并且新的内核多使用mutex互斥体

我们这里只介绍怎么使用互斥体

定义一个互斥体并且初始化它
struct mutex my_mutex;
mutex_init(&my_mutex);

然后获取互斥体
extern void mutex_lock(struct mutex *lock);
extern int __must_check mutex_lock_interruptible(struct mutex *lock);
extern int __must_check mutex_lock_killable(struct mutex *lock);
extern int mutex_trylock(struct mutex *lock);
区别和信号量的差不多 都是获mutex

释放mutex
extern void mutex_unlock(struct mutex *lock);

互斥体是进程级的 也就是多个进程之间对资源的互斥 竞争失败会发生进程上下文切换 当前进程进入睡眠状态 cpu将运行其他进程 进程上下文切换的开销比较大 所以在进程占用资源时间较长时 用互斥体才是较好的选择

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值