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 // блоктолот

Ошентип, блоктоо, толук толтурулган канал буферине элемент жиберүүгө аракет кылганда болот.