Sobes.tech
Junior — Middle

Care este numărul maxim de elemente care pot fi plasate într-un canal?

sobes.tech AI

Răspuns de la AI

În Go, numărul maxim de elemente într-un canal depinde de bufferul său. Un canal poate fi cu buffer sau fără.

  • Dacă canalul nu are buffer (creat cu make(chan Type)), poate conține 0 elemente — trimiterea se blochează până la primire.
  • Dacă canalul are buffer (creat cu make(chan Type, N)), numărul maxim de elemente este egal cu dimensiunea bufferului N.

Teoretic, dimensiunea bufferului este limitată de memoria disponibilă și de tipul int (pe sistemele pe 64 de biți, acesta este un număr foarte mare). Cu toate acestea, în practică, un buffer prea mare nu este eficient și poate duce la consum excesiv de memorie.

Exemplu de creare a unui canal cu buffer de 100 de elemente:

ch := make(chan int, 100)