栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Mutex.Lock()如何知道要锁定哪些变量?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mutex.Lock()如何知道要锁定哪些变量?

锁定对特定资源的访问权限,与之进行交互(读或写),然后再次为其他人解锁。

基本上是。

让我感到困惑的是,互斥锁和它应该锁定的值之间似乎没有任何联系。

Mutex只是一个互斥对象,它可以同步对资源的访问。这意味着,如果两个不同的goroutine要锁定互斥锁,则只有第一个可以访问它。现在,第二个goroutine会无限期等待,直到它本身可以锁定互斥体为止。与变量没有任何关系,可以根据需要使用互斥体。例如,仅一个http请求,仅一个数据库读/写操作或仅一个变量分配。尽管我不建议在这些示例中使用互斥锁,但总体思路应该很清楚。

但是看这段代码,似乎会以某种方式将整个程序锁定为仅执行锁下面的行,直到再次运行解锁为止。

并不是整个程序,只有每个想要访问 同一个 互斥锁的goroutine都等到可以。

我想这意味着所有其他goroutine都会暂停片刻,直到再次运行解锁。

不,他们不会暂停。他们执行直到想要访问相同的互斥锁为止。

如果要使用变量将互斥锁专门分组,为什么不创建结构?



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/484219.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号