为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 sync.WaitGroup、sync.Mutex 不引用通道、切片等类型?

为什么 sync.WaitGroup、sync.Mutex 不引用通道、切片等类型?

Go
白衣染霜花 2023-05-08 16:32:50
如果 Waitgroups 和 Mutex 总是需要通过引用传递,我们是否可以将其设为引用类型(禁止使用它们作为值传递)?我的意思是有没有我们需要使用它们按值传递的用例?
查看完整描述

1 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

当您将任何参数作为值传递时,该值将被复制。这些参数的任何修改都将是局部的func。当func退出时,这些更改将消失。

万一WaitGroupMutex不想这样,因为你想分享状态。如果所有修改都是本地的,您将无法同步任何内容,因为您将拥有许多具有不同状态的不同副本。

一个有效的情况可能是您想要复制WaitGroupor Mutex,但这将是非常隐含的代码,并且其他开发人员很难理解/维护。


查看完整回答
反对 回复 2023-05-08
  • 1 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信