Sobes.tech
Junior — Middle

Yadda məlumatların ötürülməsi buffer olmayan əlaqə kanalı vasitəsilə həyata keçirilir?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da qeyri-bufferli kanal vasitəsilə məlumatların ötürülməsi sinxron şəkildə həyata keçirilir: göndərən məlumatları oxuyana qədər bloklanır və əksinə. Bu, goroutine-lər arasında birbaşa sinxronizasiyanı təmin edir.

Nümunə:

ch := make(chan int) // qeyri-bufferli kanal

// Göndərən
go func() {
    ch <- 42 // alıcı oxuyana qədər bloklanır
}()

// Alıcı
val := <-ch // dəyər görünənə qədər bloklanır
fmt.Println(val) // 42 göstərəcək

Beləliklə, məlumatlar birbaşa, aralıq yaddaş olmadan ötürülür və göndərənlə alıcı arasında sinxronizasiya təmin edilir.