Sobes.tech
Senior

¿Cómo hacer que la ejecución de dos worker() sea paralela en lugar de secuencial (6 segundos → 3 segundos)?

sobes.tech AI

Respuesta de la IA

En Go, para la ejecución paralela de funciones, se pueden usar goroutines. Si tienes dos funciones worker(), que actualmente se ejecutan secuencialmente y en total toman 6 segundos, al ejecutarlas en goroutines separadas, se ejecutarán en paralelo y el tiempo total se reducirá aproximadamente a 3 segundos.

Ejemplo:

func() {
    worker()
}()
func() {
    worker()
}()

// Para esperar a que ambas goroutines terminen, usa sync.WaitGroup
var wg sync.WaitGroup
wg.Add(2)
func() {
    defer wg.Done()
    worker()
}()
func() {
    defer wg.Done()
    worker()
}()
wg.Wait()

De esta forma, lanzar funciones en goroutines y sincronizarlas con WaitGroup permite ejecutarlas en paralelo.