Junior — Middle
Какво се случва, ако извършите запис в канал, чийто буфер е напълно запълнен?
sobes.tech AI
Отговор от AI
В Go, ако се опитате да запишете стойност в канал с буфер, който е напълно запълнен, операцията по запис ще се блокира, докато в канала не се освободи място (т.е. докато някой не прочете от канала). Това осигурява синхронизация между горутините и предотвратява загубата на данни.
Пример:
ch := make(chan int, 2) // буфер за 2 елемента
ch <- 1
ch <- 2
// ch <- 3 // тук записът ще се блокира, докато някой не прочете от ch