type Counter struct { mu sync.Mutex; n int },方法 func (c Counter) Inc() 使用 c.mu.Lock() 的问题是?

Go

  1. A.编译错误:sync.Mutex 不允许作为值被拷贝
  2. B.没有问题,Mutex 在拷贝时会自动共享同一底层锁
  3. C.会死锁:副本上的 Lock 会等待原结构体上的锁释放
  4. D.值接收者拷贝整个结构体含锁,锁只保护副本无法互斥;应用指针接收者