Sobes.tech
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 // բլոկվում

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