Sobes.tech
Junior — Middle

Чӣ мешавад дар дохили систем ё барнома вақте ки буфер пурра пур мешавад ва чӣ гуна метавонад ба қатъшавӣ оварда расонад?

sobes.tech AI

Ҷавоб аз AI

Дар программаи Go, вақте ки буфер пурра пурра пурра мешавад, навиштани минбаъда ба он блок карда мешавад, то он даме ки маълумот аз буфер хонда шавад. Ин бо сабаби маҳдудияти андозаи буфер аст.

Агар истеҳсолкунандаи маълумот (writer) ба кӯшиши навиштани дар буфери пурра идома диҳад ва истеъмолкунанда (reader) маълумотро нахонад, goroutine-и истеҳсолкунандаи маълумот блок карда мешавад. Агар дар ҳамин ҳол истеъмолкунанда ҳам интизор бошад истеҳсолкунандаро (масалан, ба сабаби бастани мутақобил), ҳолати бастани мутақобил (deadlock) ба вуҷуд меояд, ки ба барҳам хӯрдани барнома оварда мерасонад.

Масалан: канал бо андозаи буфер 2, ки дар он маълумотҳо тезтар навишта мешаванд, нисбат ба он ки хонда мешаванд.