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 bufferuN.
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)