Junior — Middle
Jak można zarządzać rozmiarem bufora w kanale?
sobes.tech AI
Odpowiedź od AI
W Go rozmiar bufora kanału jest ustawiany podczas jego tworzenia za pomocą funkcji make. Jeśli podasz drugi parametr, będzie to rozmiar bufora, czyli liczba elementów, które kanał może przechowywać bez blokowania nadawcy.
Przykład utworzenia kanału z buforem o rozmiarze 5:
ch := make(chan int, 5)
Jeśli bufor jest pełny, wysłanie do kanału blokuje się do momentu, aż ktoś odczyta z kanału. Jeśli bufor ma wartość 0 (lub parametr nie jest podany), kanał jest bez bufora, a wysłanie blokuje się do momentu otrzymania wartości.
W ten sposób zarządzanie rozmiarem bufora sprowadza się do podania drugiego parametru podczas tworzenia kanału.