Junior — Middle
Proqramlaşdırma dilində goroutine'lar arasında qarşılıqlı əlaqə necə həyata keçirilir?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, goroutine-lər arasında qarşılıqlı əlaqə adətən kanallar (channels) vasitəsilə həyata keçirilir. Kanallar, goroutine-lər arasında məlumatların təhlükəsiz ötürülməsini təmin edir, sinxronizasiya və mesaj mübadiləsini təmin edir.
Kanal istifadəsinin nümunəsi:
package main
import (
"fmt"
)
func worker(ch chan string) {
ch <- "hazır"
}
func main() {
ch := make(chan string)
go worker(ch)
msg := <-ch
fmt.Println(msg)
}
Kanal dışında, sync paketindən mutex kimi digər sinxronizasiya mexanizmləri də istifadə oluna bilər, lakin kanallar Go-da goroutine-lər arasında ünsiyyətin idiomatika yolu sayılır.