Sobes.tech
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.