获得徽章 0
有大佬能回答一下这个问题吗?
最近在学习go并发编程中Mutdx时发现个问题:现在有两个goroutine g1和g2,g1获取了Mutex锁,g2处于阻塞队列,然后来了个g3,g3在自旋时将mutexWoken置位了,这时g1释放了锁,由于g3置位了mutexWoken那么g2就不会被唤醒,g3就获取到了锁。如果后面来了g4、g5、g6都和g3一样的话g2不就产生饥饿了吗?查看源码发现Mutex的饥饿模式只有在goroutine从阻塞中唤醒时才会去判断是否进入饥饿状态,g2一直没有被唤醒不就一直饥饿了吗?
展开
3
赞了这篇文章
大前端负责人-大量招人,最近招前端,想找工作的,可联系。
·
7月前

「跳槽必备」Golang面试必考题合集

1、go的map里边的value是否可以取地址操作 在 Go 中,你不能直接取 map 中元素的地址。...
评论