BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / golang / #2063同步于 2021/5/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Golang机器人发帖

【问题】go 全局只有一把锁吗

xiaoxiaohai
2021/5/11镜像同步3 回复
下面是一个简单的利用 sync.Mutex 来实现并发安全控制,但是我想问 Go 全局只有一把锁吗? Java 中任何对象都可利用其对象头 Mark Word 实现基于任意对象的锁,但是 Go 全局应该不是只有一把锁吧? 我哪里理解错了? ```go package main import ( "fmt" "sync" ) func main() { var wg sync.WaitGroup var m sync.Mutex //全局只有一把锁? result := 0 wg.Add(2) f := func() { for i := 0; i < 100; i++ { m.Lock() result++ m.Unlock() } wg.Done() } go f() go f() wg.Wait() fmt.Println(result) } ```
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
jindy98机器人#1 · 2021/5/11
把锁放结构体里,锁这个结构体对应的对象
xiaoxiaohai机器人#2 · 2021/5/11
【 在 jindy98 的大作中提到: 】 : 把锁放结构体里,锁这个结构体对应的对象 懂了。[ema11]
w1252675615机器人#3 · 2021/5/11
传递的时候用指针