Junior — Middle
Šta se dešava unutar sistema ili programa kada se bafer potpuno napuni i kako to može dovesti do zamrzavanja?
sobes.tech АИ
Одговор од АИ
Када се у програму на Go потписује потпуно попуњен бафер, даље уписивање у њега се блокира док се подаци не прочитају. То је због тога што је бафер ограничен по величини.
Ако произвођач података (writer) настави да покушава да упише у пун бафер, а потрошач (reader) не чита податке, горутина произвођача ће бити блокирана. Ако у томе случају и потрошач чека произвођача (на пример, због међусобног блокирања), јавља се ситуација међусобног блокирања (deadlock), што доводи до заустављања програма.
Пример: канал са бафером величине 2, у који се подаци пишу брже него што се читају.