Junior — Middle
Go-da goroutine-lər 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ındakı qarşılıqlı əlaqə kanallar (channels) vasitəsilə həyata keçirilir. Kanallar, goroutine'lər arasında məlumatların təhlükəsiz ötürülməsinə və sinxronizasiyasına imkan verir.
Əsas nöqtələr:
- Kanal
make(chan Tip)istifadə edilərək yaradılır. - Kanalə göndərmə:
ch <- dəyər. - Kanaldan alma:
dəyər := <-ch. - Kanallar bufferli və ya buffersiz ola bilər.
Nümunə:
func main() {
ch := make(chan string)
go func() {
ch <- "salam goroutine-dən"
}()
msg := <-ch
fmt.Println(msg)
}
Bu şəkildə, kanallar paralel goroutine'lər arasında təhlükəsiz və rahat qarşılıqlı əlaqəni təmin edir, mutexlər və ya digər kilidləmə mexanizmlərindən istifadə etməyə ehtiyac qalmır.