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

Golang,如何分享价值-消息还是互斥体?

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

Golang,如何分享价值-消息还是互斥体?

如果仅考虑性能,是否有任何理由使用通道而不是互斥锁?

并不是的。维基页面“ 使用一个

sync.Mutex
或一个频道? ”说使用最富表现力和/或最简单的那个。
有一个用于Mutex的通道示例,但已注释如下:

尽管通道为受保护的数据提供了很好的解决方案,但是对于一个作者和许多读者来说,它的效率较低。

该线程添加:

如果您要共享数据,并且从不阻塞锁定部分,请使用互斥锁。
在非阻塞情况下,互斥对象确实很便宜

如果您有一些共享服务执行某些复杂或较长的工作,并且必须对其进行序列化,请考虑为其提供一个自己的goroutine,该例程可接收来自通道的请求并在完成后将回复发送回去。通常,您发送

struct
带有输入参数的a和用于回复的通道对象。
这很像RPC。

通道用于通信 ,而不是锁定。
如果仅出于锁定目的而通过通道发送无意义的数据,则可能会使事情复杂化。



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

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

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