Sobes.tech
Middle+

În ce condiții citirea dintr-un canal va fi blocată pentru totdeauna? Ce se întâmplă atunci când scrii într-un canal nil? Când scrii într-un canal închis?

sobes.tech AI

Răspuns de la AI

  • Citirea din canal va fi blocată pentru totdeauna dacă canalul este gol și nimeni nu intenționează să scrie în el (de exemplu, toți expeditorii sunt închiși sau absenti).

  • Scrierea într-un canal nil (un canal egal cu nil) este întotdeauna blocată pentru totdeauna, deoarece canalul nil nu este inițializat și nu poate primi date.

  • Scrierea într-un canal închis duce la panică (panic) în Go, deoarece acest lucru este interzis și considerat o eroare de execuție.

Exemplu:

var ch chan int // canal nil

// <-ch // citirea din canalul nil este blocată pentru totdeauna

// ch <- 1 // scrierea în canalul nil este blocată pentru totdeauna

ch = make(chan int)
close(ch)
// ch <- 2 // panic: trimitere pe canal închis