Junior — Middle
Kā notiek datu pārraide caur nebuferizētu sakaru kanālu?
sobes.tech AI
Atbilde no AI
Datu pārraide caur nekapacitīvu kanālu Go notiek sinhroni: sūtītājs tiek bloķēts, līdz saņēmējs izlasīs datus, un otrādi. Tas nodrošina tiešu sinhronizāciju starp gorutīnām.
Piemērs:
ch := make(chan int) // nekapacitīvs kanāls
// Sūtītājs
go func() {
ch <- 42 // tiek bloķēts, līdz saņēmējs izlasīs
}()
// Saņēmējs
val := <-ch // tiek bloķēts, līdz parādās vērtība
fmt.Println(val) // izvadīs 42
Tādējādi dati tiek nodoti tieši, bez starpposma glabāšanas, nodrošinot sinhronizāciju starp sūtītāju un saņēmēju.