mutex互斥体

来源:互联网 发布:家用 网络安全设备 编辑:程序博客网 时间:2024/06/18 07:30

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将运行其他进程 进程上下文切换的开销比较大 所以在进程占用资源时间较长时 用互斥体才是较好的选择

原创粉丝点击