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.