Senior
Como fazer a execução de dois worker() ser paralela em vez de sequencial (6 segundos → 3 segundos)?
sobes.tech IA
Resposta da IA
Em Go, para a execução paralela de funções, pode usar goroutines. Se tiver duas funções worker(), que atualmente são executadas sequencialmente e levam um total de 6 segundos, ao executá-las em goroutines separadas, elas serão executadas em paralelo, e o tempo total será reduzido aproximadamente para 3 segundos.
Exemplo:
func() {
worker()
}()
func() {
worker()
}()
// Para esperar que ambas as goroutines terminem, use sync.WaitGroup
var wg sync.WaitGroup
wg.Add(2)
func() {
defer wg.Done()
worker()
}()
func() {
defer wg.Done()
worker()
}()
wg.Wait()
Dessa forma, iniciar funções em goroutines e sincronizá-las com WaitGroup permite executá-las em paralelo.