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.