github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/prepare/14_concurrent/mutex/main2.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "sync" 6 ) 7 8 type MyMutex struct { 9 count int 10 sync.Mutex 11 } 12 13 /* 14 A: 不能编译 15 B: 输出 1, 1 16 C: 输出 1, 2 17 D: panic 答案, 居然会出错why? 18 */ 19 20 func main() { 21 var mu MyMutex 22 23 mu.Lock() 24 var mu2 = mu 25 mu.count++ 26 mu.Unlock() 27 28 mu2.Lock() 29 mu2.count++ 30 mu2.Unlock() 31 fmt.Println(mu.count, mu2.count) 32 }