Sobes.tech
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, у који се подаци пишу брже него што се читају.