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