Junior — Middle
Kako se vrši prenos podataka putem nebuferisanog komunikacionog kanala?
sobes.tech АИ
Одговор од АИ
Prenos podataka putem nekapacitiranog kanala u Go-u dešava se sinhrono: pošiljalac se blokira dok primalac ne pročita podatke, i obrnuto. To obezbeđuje direktnu sinhronizaciju između gorutina.
Primer:
ch := make(chan int) // nekapacitiran kanal
// Pošiljalac
go func() {
ch <- 42 // blokira se dok primalac ne pročita
}()
// Primalac
val := <-ch // blokira se dok se ne pojavi vrednost
fmt.Println(val) // ispisuje 42
Na ovaj način, podaci se prenose direktno, bez međuvremenskog skladištenja, što garantuje sinhronizaciju između pošiljaoca i primaoca.