登录
首页 >  Golang >  Go问答

了解 Golang 中 `RLock` 的必要性

来源:stackoverflow

时间:2024-02-06 21:00:26 369浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《了解 Golang 中 `RLock` 的必要性》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

在我第一次看到 Go 中的 sync.RWMutex 时,RLock 是不必要的:人们可能只是将关键块视为顺序代码。

RLock背后的原因是什么?我在文档中看到以下内容:

在 Go 内存模型的术语中,对于任何 n < m,第 n 个 Unlock 调用“同步于”第 m 个 Lock 调用之前,就像 Mutex 一样。对于任何对 RLock 的调用,都存在一个 n,使得对 Unlock 的第 n 次调用“在对 RLock 的调用之前同步”,并且对 RUnlock 的相应调用在对 Lock 的第 n+1 次调用“之前同步”。

谁能给我详细解释一下吗?


正确答案


documentation解释了RWMutex的用途:

RLockRUnlock 方法对于区分锁定互斥锁以进行读取的调用方和锁定互斥锁以进行写入的调用方是必要的。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《了解 Golang 中 `RLock` 的必要性》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>