Sobes.tech
Junior — Middle

100 elementlik kanal istifadə edərkən bloklama dəqiq nə vaxt baş verir?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da, 100 elementlik buffer ölçüsü olan kanal, göndərənin bloklanmadan 100-ə qədər dəyər göndərə biləcəyini göstərir.

Bloklama, kanalın bufferində artıq 100 element olduqda və göndərən goroutine 101-ci elementi göndərməyə çalışdıqda baş verir. Buffer dolu olduğu üçün, göndərmə bloklanacaq, ən azı bir element oxunana qədər.

Nümunə:

ch := make(chan int, 100)

// Kanalı doldururuq
for i := 0; i < 100; i++ {
    ch <- i // bloklanmır
}

// Növbəti göndərmə, element oxunana qədər bloklanacaq
ch <- 101 // bloklanır

Beləliklə, bloklama, tam dolu kanal bufferinə element göndərməyə çalışarkən baş verir.