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