Sobes.tech
Junior — Middle

Kaip galima valdyti kanalo buferio dydį?

sobes.tech AI

Atsakymas iš AI

Go kalboje kanalo buferio dydis nustatomas kuriant jį naudojant funkciją make. Jei nurodysite antrą parametrą, tai bus buferio dydis, t.y., elementų skaičius, kurį kanalas gali saugoti be blokuojančio siuntėjo.

Pavyzdys, kaip sukurti buferuotą kanalą su 5 dydžio buferiu:

ch := make(chan int, 5)

Jei buferis pilnas, siuntimas į kanalą blokuojasi, kol kas nors neskaito iš kanalo. Jei buferis yra 0 (arba parametras nenurodytas), kanalas yra be buferio ir siuntimas blokuojasi, kol nebus gauta reikšmė.

Taigi, buferio dydžio valdymas sumažėja iki antrojo parametro nurodymo kuriant kanalą.