Junior — Middle
Você já utilizou a função Once na linguagem Go e como ela foi usada nos seus projetos?
sobes.tech IA
Resposta da IA
Na linguagem Go, a função sync.Once é usada para garantir que um determinado trecho de código seja executado exatamente uma vez, mesmo que a chamada venha de várias goroutines ao mesmo tempo. Isso é útil, por exemplo, para a inicialização de recursos que devem ser criados apenas uma vez.
Exemplo de uso:
var once sync.Once
func initialize() {
fmt.Println("Inicialização concluída")
}
func main() {
for i := 0; i < 5; i++ {
go func() {
once.Do(initialize) // initialize será chamado apenas uma vez
}()
}
time.Sleep(time.Second) // Esperamos pelas goroutines terminarem
}
Nos meus projetos, usei sync.Once para inicialização preguiçosa de configurações ou conexão ao banco de dados, para evitar inicializações repetidas e condições de corrida.