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.