Junior — Middle
Qual é o papel principal do tipo sync.Once na sincronização de threads em Go?
sobes.tech IA
Resposta da IA
O tipo sync.Once em Go é usado para garantir que um trecho de código seja executado exatamente uma vez, mesmo que seja chamado por várias goroutines.
O papel principal é a inicialização segura de recursos (por exemplo, criar um singleton), para evitar condições de corrida e execuções repetidas.
Exemplo de uso:
var once sync.Once
var config *Config
func loadConfig() {
config = &Config{/* inicialização */}
}
func GetConfig() *Config {
once.Do(loadConfig) // loadConfig será chamado apenas uma vez
return config
}
Assim, sync.Once garante a execução thread-safe de uma função uma única vez.