Junior — Middle
Kas notiek, ja veicat ierakstu kanālā, kura buferis ir pilnībā aizpildīts?
sobes.tech AI
Atbilde no AI
Go valodā, ja mēģināt ierakstīt vērtību ar buferi pilnā kanālā, rakstīšanas operācija tiks bloķēta, līdz kanālā atbrīvosies vieta (t.i., līdz kāds izlasīs no kanāla). Tas nodrošina sinhronizāciju starp gorutīnām un novērš datu zudumu.
Piemērs:
ch := make(chan int, 2) // buferis ar 2 elementiem
ch <- 1
ch <- 2
// ch <- 3 // šeit rakstīšana tiks bloķēta, līdz kāds izlasīs no ch