Sobes.tech
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.