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.