Junior — Middle
Երբ է տեղի ունենում բլոկավորումը 100 տարր պարունակող ալիքի օգտագործման ժամանակ?
sobes.tech AI
Պատասխան AI-ից
Go-ում, 100 տարրերի բուֆերային չափով ալիքը նշանակում է, որ դուք կարող եք ուղարկել մինչև 100 արժեք առանց ուղարկողի բլոկի:
Բլոկավորումը տեղի կունենա այն պահին, երբ ալիքի բուֆերը արդեն պարունակում է 100 տարր, և ուղարկող գորուտին փորձում է ուղարկել 101-րդ տարրը: Քանի որ բուֆերը լեցուն է, ուղարկումը կբլոկվի մինչև որ մեկը կարդա առնվազն մեկ տարր ալիքից:
Օրինակ:
ch := make(chan int, 100)
// Լցնում ենք ալիքը
for i := 0; i < 100; i++ {
ch <- i // չի բլոկվում
}
// Հաջորդ ուղարկումը բլոկվի մինչև որ կարդա մի տարր
ch <- 101 // բլոկվում
Այսպիսով, բլոկավորումը տեղի է ունենում, երբ փորձում եք ուղարկել տարր լիարժեք բուֆերային ալիքին։