获取不到锁会一直等待吗?

本文阅读 2 分钟
首页 golang 正文

题目序号:(664)

题目来源:网易

题目频次:1

答案1:(自由)

会。
在 2016 年 Go 1.9 中 Mutex 增加了饥饿模式,让锁变得更公平,不公平的等待时间限制在 1 毫秒,并且修复了一个大 Bug:总是把唤醒的 goroutine 放在等待队列的尾部,会导致出现不公平的等待时间。那什么时候会进入饥饿模式?1 毫秒,一旦等待者等待时间超过这个时间阈值,就可能会进入饥饿模式,优先让等待着先获取到锁。有饥饿模式自然就有正常模式了,这里就不展开了。你只需要记住,Mutex 锁不会容忍一个 goroutine 被落下,永远没有机会获取锁。Mutex 尽可能地让等待较长的 goroutine 更有机会获取到锁。

本文来自投稿,不代表本站立场,如若转载,请注明出处:
Golang Map 如何扩容
« 上一篇 09-17
go什么场景使用接口
下一篇 » 09-17

发表评论

发表评论