Sobes.tech
Junior — Middle

Aké je maximálne množstvo prvkov, ktoré je možné umiestniť do kanála?

sobes.tech AI

Odpoveď od AI

V jazyku Go závisí maximálny počet prvkov v kanáli od jeho bufferu. Kanál môže byť s bufferom alebo bez.

  • Ak kanál nemá buffer (vytvorený pomocou make(chan Type)), môže obsahovať 0 prvkov — odoslanie sa zablokuje, kým nebude prijaté.
  • Ak má kanál buffer (vytvorený pomocou make(chan Type, N)), maximálny počet prvkov je rovný veľkosti bufferu N.

Teoreticky je veľkosť bufferu obmedzená dostupnou pamäťou a typom int (na 64-bitových systémoch je to veľmi veľké číslo). V praxi však, príliš veľký buffer nie je efektívny a môže viesť k nadmernému využívaniu pamäti.

Príklad vytvorenia bufferovaného kanála s 100 prvkami:

ch := make(chan int, 100)