Junior — Middle
¿Cómo se coordina el trabajo de varias goroutines en Go?
sobes.tech AI
Respuesta de la IA
En Go, la coordinación del trabajo de varias goroutines generalmente se realiza mediante canales (channels) y el paquete sync.
- Canales permiten a las goroutines intercambiar datos y sincronizar la ejecución, bloqueando al remitente o al receptor hasta que estén listos.
- sync.WaitGroup se usa para esperar a que un grupo de goroutines termine.
- Mutex y otros primitivas de sync proporcionan acceso seguro a recursos compartidos.
Ejemplo de uso de un canal para sincronización:
ch := make(chan int)
func() {
// Realizar trabajo
ch <- 1 // señal de finalización
}()
<-ch // esperar la señal
De esta forma, los canales y primitivas de sincronización permiten coordinar de manera eficiente tareas paralelas.