Sobes.tech
Junior — Middle

Šta se dešava ako izvršite zapis u kanal čiji je bafer potpuno popunjen?

sobes.tech АИ

Одговор од АИ

У Go, ако покушате да напишете вредност у канал са пуњењем, који је у потпуности попуњен, операција писања ће се блокирати док се не ослободи место у каналу (односно, док не неко не прочита из канала). Ово обезбеђује синхронизацију између горутин и спречава губитак података.

Пример:

ch := make(chan int, 2) // буфер од 2 елемента
ch <- 1
ch <- 2
// ch <- 3 // овде ће писање бити блокирано док не неко не прочита из ch