面试时遇到的问题,mutex的实现原理是什么?

为什么在lock时,其他线程就没法获取该锁#C/C++##悬赏#
全部评论
m
点赞 回复 分享
发布于 2019-07-06 12:03
unix和linux实现方式不一样
点赞 回复 分享
发布于 2019-07-06 11:27
锁的value如果非0,其他线程到临界区的时候会被futex调用进入休眠,mutex.value为0时唤醒线程,从内核总线调用改为futex可避免频繁上下文切换
点赞 回复 分享
发布于 2019-07-06 11:27
Mutex是一个结构体,里面包含了一个等待队列头,一个原子变量,一个自旋锁。工作机制可以差一下linux源码,
点赞 回复 分享
发布于 2019-07-06 11:22
原子操作判断是否已被锁,具体可以搜索下相关资料
点赞 回复 分享
发布于 2019-07-06 11:21

相关推荐

不愿透露姓名的神秘牛友
11-21 11:29
已编辑
斯卡蒂味的鱼汤:知道你不会来数马,就不捞你😂最近数马疯狂扩招,招聘要求挺低的,你能力肯定够,应该就是因为太强了,知道你不会来才不捞你
投递腾讯云智研发等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
12
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务