Sobes.tech
Junior — Middle

Jaka jest maksymalna liczba elementów, które można umieścić na kanale?

sobes.tech AI

Odpowiedź od AI

W Go maksymalna liczba elementów w kanale zależy od jego bufora. Kanał może być z buforem lub bez.

  • Jeśli kanał nie ma bufora (tworzony przez make(chan Type)), może zawierać 0 elementów — wysyłanie blokuje się do momentu odbioru.
  • Jeśli kanał ma bufor (tworzony przez make(chan Type, N)), maksymalna liczba elementów jest równa rozmiarowi bufora N.

Teoretycznie rozmiar bufora jest ograniczony dostępną pamięcią i typem int (na systemach 64-bitowych jest to bardzo duża liczba). Jednak w praktyce zbyt duży bufor jest nieefektywny i może prowadzić do nadmiernego zużycia pamięci.

Przykład tworzenia zbuforowanego kanału na 100 elementów:

ch := make(chan int, 100)