Junior — Middle
¿Cómo se realiza el intercambio de información entre las goroutines en Go?
sobes.tech AI
Respuesta de la IA
En Go, el intercambio de información entre goroutines se realiza principalmente a través de canales (channels). Los canales permiten transmitir datos de manera segura entre goroutines, asegurando la sincronización y evitando condiciones de carrera.
Ejemplo de uso de un canal:
ch := make(chan int)
// Envío de datos en una goroutine
go func() {
ch <- 42
}()
// Recepción de datos en la goroutine principal
value := <-ch
fmt.Println(value) // Imprimirá 42
Los canales pueden ser con búfer y sin búfer, lo que afecta el comportamiento de bloqueo al enviar y recibir datos. Además, para el intercambio, se pueden usar otros mecanismos, como variables compartidas con mutexes, pero los canales son la forma idiomática principal de comunicación en Go.