对于互斥锁在Golang中的工作方式,我有点困惑,尽管我之前使用过它们。Golang互斥锁锁定特定变量/地图
这里是我的问题:
究竟做了互斥锁? (How)你只用它来锁定一个特定的变量吗?
我应该使用频道而不是互斥吗?
互斥体和储物柜之间有区别吗?
我发展与golang高并发网站,我需要在不同的时间来管理每个人的钱包,我试图避免在我的程序中的任何比赛。例如,如果我的程序想要向用户添加500个积分,它将从用户(从Firebase)读取当前余额并添加500,然后更新该值。但如果由于某种原因这样做了两次,用户的钱包可能会发生不正确的变化。
我在godoc上读到一个互斥体满足sync.Locker接口,但并不真正理解它的含义。我正在寻找一个探索。另外,我将如何使用互斥体锁定一个特定的变量? (这取决于你决定什么意思?) – Acidic
@Acidic:[“Interfaces”](https://golang.org/ref/spec#Interface_types)是一个主要的Go概念,您需要了解如何使用该语言。也许从官方文档开始,比如[Effective Go](https://golang.org/doc/effective_go.html#interfaces)中的相应部分,或者[Go of Tour](https://tour.golang。组织/方法/ 9)。除了在代码中使用它之外,互斥锁与锁之间没有任何关系。 – JimB