Sobes.tech
Junior — Middle

Маалыматтарды буферсиз байланыш каналы аркылуу өткөрүү кандай жүргүзүлөт?

sobes.tech AI

AIден жооп

Go'da ma'lumotlarni uzatish uchun kanal bo'sh bo'lmagan holda sinxron tarzda amalga oshiriladi: yuboruvchi ma'lumotlarni o'qilmaguncha bloklanadi va aksincha. Bu goroutine'lar o'rtasida to'g'ridan-to'g'ri sinxronizatsiyani ta'minlaydi.

Misol:

ch := make(chan int) // bo'sh bo'lmagan kanal

// Yuboruvchi
go func() {
    ch <- 42 // bloklanadi, yuboruvchi ma'lumotni o'qilmaguncha
}()

// Qabul qiluvchi
val := <-ch // bloklanadi, qiymat paydo bo'lguncha
fmt.Println(val) // 42 ni chiqaradi

Shu tarzda, ma'lumotlar to'g'ridan-to'g'ri uzatiladi, oraliq saqlashsiz, bu yuboruvchi va qabul qiluvchi o'rtasida sinxronizatsiyani kafolatlaydi.