Sobes.tech
Junior — Middle

Cum se poate gestiona dimensiunea buffer-ului într-un canal?

sobes.tech AI

Răspuns de la AI

În Go, dimensiunea bufferului canalului se stabilește la crearea sa cu funcția make. Dacă specificați al doilea parametru, acesta va fi dimensiunea bufferului, adică numărul de elemente pe care canalul le poate stoca fără a bloca expeditorul.

Exemplu de creare a unui canal cu buffer de dimensiune 5:

ch := make(chan int, 5)

Dacă bufferul este plin, trimiterea în canal se blochează până când cineva citește din canal. Dacă bufferul este 0 (sau parametrul nu este specificat), canalul este fără buffer și trimiterea se blochează până când se primește o valoare.

Astfel, gestionarea dimensiunii bufferului se reduce la specificarea celui de-al doilea parametru la crearea canalului.