Sobes.tech
Junior — Middle

¿Cómo se realiza el control del cumplimiento y la sincronización de las goroutines en el programa?

sobes.tech AI

Respuesta de la IA

En Go, el control de la ejecución y la sincronización de las goroutines generalmente se realiza mediante:

  • WaitGroup del paquete sync — permite esperar a que un grupo de goroutines finalice.
  • Canales (channels) — se utilizan para transmitir datos y señales entre goroutines, asegurando la sincronización.

Ejemplo con WaitGroup:

var wg sync.WaitGroup
wg.Add(1)
go func() {
    defer wg.Done()
    // trabajo de la goroutine
}()
wg.Wait() // esperamos a que la goroutine termine

Los canales permiten, por ejemplo, transmitir resultados o señales de finalización:

ch := make(chan int)
go func() {
    ch <- 42 // envío de valor
}()
valor := <-ch // recepción de valor, sincroniza las goroutines

Por lo tanto, WaitGroup y canales son las herramientas principales para el control y la sincronización de las goroutines.