Sobes.tech
Junior — Middle

Kā var pārvaldīt kanāla bufera lielumu?

sobes.tech AI

Atbilde no AI

Go valodā kanāla bufera izmērs tiek noteikts, to izveidošanas laikā, izmantojot funkciju make. Ja norādāt otro parametru, tas būs bufera izmērs, tas ir, elementu skaits, ko kanāls var uzglabāt bez bloķēšanas sūtītājam.

Piemērs, kā izveidot buferētu kanālu ar bufera izmēru 5:

ch := make(chan int, 5)

Ja buferis ir pilns, sūtīšana uz kanāla tiek bloķēta līdz brīdim, kad kāds izlasīs no kanāla. Ja buferis ir 0 (vai parametrs nav norādīts), kanāls ir bez bufera, un sūtīšana tiek bloķēta līdz brīdim, kad saņemta vērtība.

Tādējādi, bufera izmēra pārvaldība ir vienkārši norādīt otro parametru, izveidojot kanālu.