## 已经加锁的变量复制后,会将锁的状态一起复制
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
1type MyMutex struct {
2 count int
3 sync.Mutex
4}
5
6func main() {
7 var mu MyMutex
8 mu.Lock()
9 var mu1 = mu
10 mu.count++
11 mu.Unlock()
12 mu1.Lock()
13 mu1.count++
14 mu1.Unlock()
15 fmt.Println(mu.count, mu1.count)
16}
|
例子中,mu1将mu的锁状态一起复制了,所以不能再次加锁。最终会fatal error