Sobes.tech
Junior — Middle

¿Cómo se realiza la transmisión de datos a través de un canal de comunicación sin búfer?

sobes.tech AI

Respuesta de la IA

La transferencia de datos a través de un canal no bufferizado en Go ocurre de manera sincrónica: el remitente se bloquea hasta que el receptor lea los datos, y viceversa. Esto garantiza una sincronización directa entre las goroutines.

Ejemplo:

ch := make(chan int) // canal no bufferizado

// Remitente
go func() {
    ch <- 42 // se bloquea hasta que el receptor lea
}()

// Receptor
val := <-ch // se bloquea hasta que aparezca un valor
fmt.Println(val) // mostrará 42

De esta manera, los datos se transmiten directamente, sin almacenamiento intermedio, lo que garantiza la sincronización entre el remitente y el receptor.