Junior — Middle
¿Cuál es el papel principal del tipo sync.Once en la sincronización de hilos en Go?
sobes.tech AI
Respuesta de la IA
El tipo sync.Once en Go se utiliza para garantizar que un fragmento de código se ejecute exactamente una vez, incluso si se accede desde múltiples hilos (goroutines).
El papel principal es la inicialización segura de recursos (por ejemplo, crear un singleton), para evitar condiciones de carrera y ejecuciones repetidas.
Ejemplo de uso:
var once sync.Once
var config *Config
func loadConfig() {
config = &Config{/* inicialización */}
}
func GetConfig() *Config {
once.Do(loadConfig) // loadConfig se llamará solo una vez
return config
}
De esta manera, sync.Once garantiza la ejecución segura en múltiples hilos de la función.