Junior — Middle
Ի՞նչ պայմաններում է առաջանում բլոկավորումը տվյալների փոխանցման համակարգում բուֆերային ալիքի օգտագործման ժամանակ։
sobes.tech AI
Պատասխան AI-ից
Go-ում բուֆերային ալիքն արգելափակվում է երկու հիմնական դեպքերում՝
-
Ալիքին գրելու (ուղարկելու) ժամանակ՝ եթե ալիքի բուֆերը լցված է (այդինքն՝ ալիքի տարրերի քանակը հասել է նրա ծավալին), նոր արժեք ուղարկելու փորձը արգելափակում է goroutine- ն, մինչև որ ոք միանա ալիքին և ազատի տեղ:
-
Ալիքից ընթերցելու ժամանակ՝ եթե ալիքը դատարկ է (չկա ընթերցելու համար տարրեր), ընթերցելու փորձը արգելափակում է goroutine- ն, մինչև որ ոք ուղարկի նոր արժեք:
Այսպիսով, արգելափակումը տեղի է ունենում, երբ փորձում եք ուղարկել տվյալներ լի բուֆերով կամ ընթերցել դատարկ բուֆերից։