¿Cuándo incrustas mutex en struct en Go?
NOTA: Encontré que la palabra 'incrustar' en el título era una mala elección, pero la conservaré.
Veo que mucho código hace esto:
type A struct {
mu sync.Mutex
...
}
Y úsalo así:
a := &A{}
a.mu.Lock()
defer a.mu.Unlock()
a.Something()
¿Es mejor que el mutex local o el mutex global?
a := &A{}
var mu sync.Mutex
mu.Lock()
defer mu.Unlock()
a.Something()
¿Cuándo debo usar anterior o posterior?