Sobes.tech
Junior — Middle

Ի՞նչ պայմաններում է առաջանում բլոկավորումը տվյալների փոխանցման համակարգում բուֆերային ալիքի օգտագործման ժամանակ։

sobes.tech AI

Պատասխան AI-ից

Go-ում բուֆերային ալիքն արգելափակվում է երկու հիմնական դեպքերում՝

  1. Ալիքին գրելու (ուղարկելու) ժամանակ՝ եթե ալիքի բուֆերը լցված է (այդինքն՝ ալիքի տարրերի քանակը հասել է նրա ծավալին), նոր արժեք ուղարկելու փորձը արգելափակում է goroutine- ն, մինչև որ ոք միանա ալիքին և ազատի տեղ:

  2. Ալիքից ընթերցելու ժամանակ՝ եթե ալիքը դատարկ է (չկա ընթերցելու համար տարրեր), ընթերցելու փորձը արգելափակում է goroutine- ն, մինչև որ ոք ուղարկի նոր արժեք:

Այսպիսով, արգելափակումը տեղի է ունենում, երբ փորձում եք ուղարկել տվյալներ լի բուֆերով կամ ընթերցել դատարկ բուֆերից։