Sobes.tech
Junior — Middle

Jaké je maximální množství prvků, které lze umístit do kanálu?

sobes.tech AI

Odpověď od AI

V jazyce Go závisí maximální počet prvků v kanálu od jeho bufferu. Kanál může být s bufferem nebo bez.

  • Pokud kanál nemá buffer (vytvořený pomocí make(chan Type)), může obsahovat 0 prvků — odeslání se zablokuje, dokud nebude přijato.
  • Pokud má kanál buffer (vytvořený pomocí make(chan Type, N)), maximální počet prvků je roven velikosti bufferu N.

Teoreticky je velikost bufferu omezena dostupnou pamětí a typem int (na 64bitových systémech je to velmi velké číslo). V praxi však příliš velký buffer není efektivní a může vést k nadměrnému využívání paměti.

Příklad vytvoření bufferovaného kanálu s 100 prvky:

ch := make(chan int, 100)