Sobes.tech
Junior — Middle

Čo sa stane, ak vykonáte zápis do kanála, ktorého vyrovnávacia pamäť je úplne zaplnená?

sobes.tech AI

Odpoveď od AI

V jazyku Go, ak sa pokúsite zapísať hodnotu do kanála s vyrovnávacou pamäťou, ktorý je úplne zaplnený, operácia zápisu sa zablokuje, kým sa neuvoľní miesto v kanáli (t.j. kým niekto neprečíta z kanála). To zabezpečuje synchronizáciu medzi gorutinami a zabraňuje strate dát.

Príklad:

ch := make(chan int, 2) // buffer na 2 prvky
ch <- 1
ch <- 2
// ch <- 3 // tu sa zápis zablokuje, kým niekto neprečíta z ch