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.