Sobes.tech
Middle+

¿En qué condiciones se bloqueará para siempre la lectura del canal? ¿Qué sucederá al escribir en un canal nil? ¿Al escribir en un canal cerrado?

sobes.tech AI

Respuesta de la IA

  • La lectura del canal se bloqueará para siempre si el canal está vacío y nadie planea escribir en él (por ejemplo, todos los remitentes están cerrados o no hay ninguno).

  • La escritura en un canal nil (un canal igual a nil) siempre se bloquea para siempre, ya que el canal nil no está inicializado y no puede aceptar datos.

  • La escritura en un canal cerrado provoca un pánico (panic) en Go, ya que esto está prohibido y se considera un error en tiempo de ejecución.

Ejemplo:

var ch chan int // canal nil

// <-ch // la lectura del canal nil se bloquea para siempre

// ch <- 1 // la escritura en un canal nil se bloquea para siempre

ch = make(chan int)
close(ch)
// ch <- 2 // panic: envío en un canal cerrado